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

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

        本次我就自我谈谈我处理的逻辑,首先,我是有一个index.html页面的,这个页面作为一个入口页面,然后APP打开的时候,会进入这个页面,然后我在plusready里面检查,APP是不是第一次启动,如果是的话,就跳转到欢迎页面,如果不是,就进入登陆页面。这里面,就会出现白屏了。因为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
posted @ 2016-04-03 10:59  南宫萧尘  阅读(9553)  评论(4编辑  收藏  举报