1***@qq.com
1***@qq.com
  • 发布:2017-06-29 13:58
  • 更新:2017-07-02 09:45
  • 阅读:1586

H5兼容问题

分类:HTML5+

一下问题在Android4.0下没有发生,最近用Android6.0测试发现了。
即同一套代码,在4.0下没有问题,在6.0下产生了问题。

plusReady问题一:
ajax (参数设置cache:false)从网络下载网页,通过webview显示,但mui.plusReady有时候不能执行。
代码如下:
webview.clear();
webview.loadData(html);
setTimeout(function() {
webview.show(aniShow, 300);
}, 200);

plusReady问题二:
参考:http://ask.dcloud.net.cn/article/921
我增加了
<script src="html5plus://ready"></script>
if(window.plus){
在这里调用ajax ,报错如下:
XMLHttpRequest cannot load http://192.168.1.221/test Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers in preflight response.
产生跨域的问题,如果在mui.plusReady里面调用ajax ,不会产生跨域问题,但就是有时候mui.plusReady没有执行。
}else{
document.addEventListener('plusready',function () {
},false);
}
问题二没有实现:mui.plusReady,只是增加了上述代码,不会导致plusReady重复执行。

问题三: Webview 打开页面的问题
我有一个主页面M,通过M可以打开功能页面F,从F可以打开子页面S。
M是App启动的页面,保存在手机里面的一个html,有一个webview。
F是从网络下载的html,在主页面中创建了一个Webview打开的。
S是从网络下载的html,在F页面中创建一个Webview打开的。
打开循序是M->F->S ,但当我在S页面里面查看当前webview的id时(调用plus.webview.getTopWebview().id) 发现有时候是S的id,有时候是F的id,有时候是M的id。
按理,应该一直都是S的id才对,怎么会变来变去,M和S都是创建webview打开的。

2017-06-29 13:58 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

经过几天反复实验,基本找到问题原因。先说点题外话,官方的主要目的是速度,最近宣传比原生都快。
其实,原生、H5或混合,开发者也只能根据实际需要去选择,三者相互补充,共生于市场,各自份额也是市场需求决定的。大家唯一能做的是优化,完善,迭代。闲话不多说,言归问题。
IOS的plus直接就用,annroid要初始化才可以用,原因我不知道,但我相信官方是速度第一,为了这个速度牺牲了稳定可靠性。两难的选择,放弃速度,稳定可靠有保证。


document.addEventListener('plusready',function () {
},false);
在这里调用ajax,但很慢,快测几秒,长则10几秒,稳定压倒一绝,无法之法,等官方升级了。
}

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