详细问题描述
业务需要引用第三方的https新闻资讯服务,为了减少加载时间,故用了最新的预加载方法:plus.webview.prefetchURL,经测试,IOS设备没问题,但是安卓的导致出现白屏
重现步骤
[步骤]:
1.在启动页调用plus.webview.prefetchURL预加载网络页面
- 打开此网络页面 plus.webview.create()
- 加载成功后显示页面
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
2 个回复
s***@126.com
prefetchURL:预载网络界面
请注意文档的介绍:预载网络页面会向服务器发起 HTTP/HTTPS 请求获取 HTML 页面内容。
经过测试,如果 HTML 页面内容是通过 JS 动态生成的,那么在 Android 系统下进行预加载只会加载出 HTML 页面,而 JS 不会执行,因此页面是白屏显示。而 iOS 则能够正常在后台执行 JS,所以正常。
解决方案:
直接在前一个页面创建 Webview,然后等待需要的时候再调用 show 方法显示即可。
小明子 (作者)
谢谢,我做了特殊处理,IOS的用预载网络的prefetchURL方法,安卓的用普通的webview预加载。