小明子
小明子
  • 发布:2017-12-22 16:51
  • 更新:2018-09-27 15:12
  • 阅读:2228

plus.webview.prefetchURL预加载网络页面,安卓页面出现白屏,苹果没问题

分类:HTML5+

详细问题描述
业务需要引用第三方的https新闻资讯服务,为了减少加载时间,故用了最新的预加载方法:plus.webview.prefetchURL,经测试,IOS设备没问题,但是安卓的导致出现白屏

重现步骤
[步骤]:
1.在启动页调用plus.webview.prefetchURL预加载网络页面
2. 打开此网络页面 plus.webview.create()
3. 加载成功后显示页面
webview.onloaded = function() {
webview.show("fade-in",150);
}

[结果] 苹果没问题,安卓出现白屏
[期望] 安卓苹果都ok

运行环境
安卓4.4.4
Hbuilder版本8.8.7
Mui v3.6.0

代码片段:
var path = "https://www.baidu.com"
setTimeout(function(){
console.log("网页预加载...")
plus.webview.prefetchURL(path);
},4000);

var webview = plus.webview.create(path, "test", {
top: '0px',
bottom: '48px',
hardwareAccelerated:true,
render:'always'
});

webview.onloaded = function(){ webview.show("fade-in",150);}

联系方式
[微信]ccm513373158

2017-12-22 16:51 负责人:无 分享
已邀请:
s***@126.com

s***@126.com

prefetchURL:预载网络界面

请注意文档的介绍:预载网络页面会向服务器发起 HTTP/HTTPS 请求获取 HTML 页面内容。

经过测试,如果 HTML 页面内容是通过 JS 动态生成的,那么在 Android 系统下进行预加载只会加载出 HTML 页面,而 JS 不会执行,因此页面是白屏显示。而 iOS 则能够正常在后台执行 JS,所以正常。

解决方案:

直接在前一个页面创建 Webview,然后等待需要的时候再调用 show 方法显示即可。

小明子

小明子 (作者)

谢谢,我做了特殊处理,IOS的用预载网络的prefetchURL方法,安卓的用普通的webview预加载。

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