Snek
Snek
  • 发布:2015-04-27 18:10
  • 更新:2015-06-06 18:38
  • 阅读:3689

Android手机调用show()方法打开页面的时候,不管预加载,还是延迟执行,都会发生白屏

分类:HTML5+

Android手机打开页面的时候,不管预加载,还是延迟执行,都会发生白屏,在苹果手机上没问题。
预加载:第一次会出现白屏,之后可以流畅切换

                      mui.init({  
                swipeBack: false,  
                preloadPages: [{  
                    url: 'grid.html',  
                    id: 'grid.html'  
                }]  
            });  

                    mui.openWindow({  
                        url: 'grid.html',  
                        id: 'grid.html'  
                    });

延迟执行:始终会出现白屏

                    var nwaiting = plus.nativeUI.showWaiting();  
                webviewShow = plus.webview.create("grid.html");  
                webviewShow.addEventListener("loaded", function() {  
                    setTimeout(function(){  
                            nwaiting.close();  
                            webviewShow.show();  
                    },2000);  
                }, false);  
2015-04-27 18:10 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

先show再close呢?
webview还有一个render的参数,你把它设为always试试。

  • Snek (作者)

    还是一样,render参数也设置了

    var nwaiting = plus.nativeUI.showWaiting();

    webviewShow = plus.webview.create("grid.html");

    webviewShow.setStyle({'render':"always"});

    webviewShow.addEventListener("loaded", function() {

    setTimeout(function(){

    webviewShow.show();

    nwaiting.close();

    },2000);

    }, false);

    2015-04-28 09:23

  • DCloud_heavensoft

    回复 Snek: 为何单独setstyle?create的时候直接把style参数放进去。以及这个写法也不是预载,是现载。还有,延迟2秒都有白屏,那个grid的页面写的也有问题,可以找个Android4.4的模拟器或真机,使用chrome控制台的timeline看看。

    2015-06-02 03:19

Snek

Snek (作者)

有没有可能是CSS渲染的问题

DCloud_heavensoft

DCloud_heavensoft

有可能是css的问题;还有一种可能是有缺失或加载很慢的资源,比如需要从网上下好几M的js或css,在下载完成或超时前,渲染都不会执行。

  • 7***@qq.com

    预加载的新页面里面带有背景图,类似游戏界面那样。然后第一次打开时会先白屏然后页面内容才显示出来。视觉上就觉得白屏很严重。请问这种要怎么优化呢

    2019-03-13 22:32

Snek

Snek (作者)

资源是本地的,数据是静态的
如果是CSS的话,可能是哪方面的原因?
MUI有没有设置硬件加速

DCloud_heavensoft

DCloud_heavensoft

5+runtime默认是开启硬件加速的,也可以在manifest里配置关闭硬件加速,然后再打包。
css里有些效果也是会触发浏览器调用硬件加速的,具体哪些不记得了。

无尾鱼

无尾鱼

这个问题我也遇到了,预加载好的页面首次加载始终会白屏,以后就好了
资源全部是本地资源

  • DCloud_heavensoft

    这个还是得看代码的写法,正常是不会白屏的。

    2015-06-02 03:20

  • 无尾鱼

    回复 DCloud_heavensoft:setTimeout里面第一次调用会白。确切的说不是白,是只显示背景色,最扯淡的是并不是每次都会出现,出现几率是50%左右。嘛,这个问题现在其实已经无所谓了,我全部都是本地页面,不用预加载就没有这个问题

    2015-06-02 09:07

  • 无尾鱼

    回复 DCloud_heavensoft:放个按钮或其他什么的手动点击跳转不会出现,只有在setTimeout的时候才出现

    2015-06-02 09:16

无尾鱼

无尾鱼

都是本地资源的话可以这样解决,不要预加载,设置加载完成后自动显示,并且关闭等待框。会稍有延迟,但是总比白屏好

stock2

stock2

我第一次是open,优化后是,检测是否打开,直接show和hide,感觉也不好,最后优化和楼上一样,等待不显示反而效果最好。
经历了2个月的领悟啊
现在的mui示例,体验很好,文字提示的过度,我没提炼出来

该问题目前已经被锁定, 无法添加新回复