MUI APP防止登陆页面出现白屏

时间:2022-07-10 17:20:48

最近在用MUI开发APP,总体效果,在IOS上,是完美的,但是在低端的Android手机上,就会出现性能问题,我个人觉得最严重的是,就是首页,就是APP打开的第一个页面,在iOS上,由于性能高,所以,基本能流畅切换,但是到了Android上,就会出现令人讨厌的白屏了。

        本次我就自我谈谈我处理的逻辑,首先,我是有一个index.html页面的,这个页面作为一个入口页面,然后APP打开的时候,会进入这个页面,然后我在plusready里面检查,APP是不是第一次启动,如果是的话,就跳转到欢迎页面,如果不是,就进入登陆页面。这里面,就会出现白屏了。因为APP第一次进来,页面还有加载完毕,所以,会出现白屏。我的处理方法如下:
    一、设置一个启动图片,然后再手动关闭启动界面,如下:MUI APP防止登陆页面出现白屏
二、到index.html页面,添加以下代码:
mui.plusReady(function() {
setTimeout(function() {
mui.preload({
id: 'html/login.html',
url: 'html/login.html'
})//预打开登录页
}, 100);//延时加载登录页,这个可以不用演示,你可以放在mui.int里面
setTimeout(function() {//这里面也用了一个延时,因为一般登陆页面,只要不是太多的东西,200毫秒应该能满足了,时间长短,自己把控了。
/*
* 这里获取本地存储中的字段,来判定是否第一次打开app;
* 注意,只需要判定有这个值就可以了,因为只有两种情况:
* 1、有这个值,并且值是true
* 2、压根就没有这个值
* http://www.html5plus.org/doc/zh_cn/storage.html#plus.storage.getItem
*/
/*
这里用的是版本的名字,是为了后续更新版本后,我们更新应用或者升级版本的时候,把这个相应的修改
一下即可进入新的引导页面了,如果固定一个,以后更新版本,就看不到欢迎页了,这个看个人需求了。
*/
var first = plus.storage.getItem("version1.3");
if (first) { //如果已经有值,那么就代表不是第一次打开,则直接进入主页
plus.navigator.closeSplashscreen();//关闭启动页
mui.openWindow({
id: "html/login.html",
waiting: {
autoShow: true
},
show: {
aniShow: 'pop-in'
}
});
} else { //否则将打开欢迎界面
plus.navigator.closeSplashscreen(); }
}, 500) }, false)
三、到了这里,大家发现,如果index.html是空白的,虽然白屏的时间短了许多,但是还是能看到白屏,依然是我不能容忍的。所以,这里面有个小技巧,就是,你在index.html页面,设置一个背景,这个背景颜色,或者图片,和登陆页面差不多的(就是没有登陆输入框和按钮的那种图片或者背景)。这样的话,就基本能解决白屏问题了。
好了,本次教程到此结束,转载请保留原作者地址以及姓名(本人无偿分享经验,有偿接单制作APP,有需要可以联系我。);
作者:南宫萧尘  
E-mail:314791147@qq.com
日期:2016-04-03