wkwebview适配问题解决方案
来源:Android开发学习网 2017-04-12今天要和大家分享一下wkwebview适配问题的一些知识。
1、微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配;
2、iOS微信6.5.3版本开始支持开发者手动切换WKWebview和UIWebview,使开发者可提前对WKWebview进行适配。切换的方法在微信“添加朋友”中输入:switchweb,可进行WKWebview与UIWebview两者模式之间的转化
3、校验切换方法:
通过命令成功切换到WKWebview后,可通过以下方法验证当前网页使用的是否是WKWebview内核。
微信内任意入口进入任意网页,在网页加载成功后向下拉动页面(或点击网页右上角菜单按钮),使之显示出地址栏,当地址栏以 “此网页由” 开头即为当前使用WKWebview,若以“网页由”则是使用的UIWebview。
4、变量判断
页面如何判断当前使用的webview内核:
在页面中可通过微信注入的window.__wxjs_is_wkwebview变量判断当前使用的webview内核。 iOS微信6.5.3及其之后的版本 window.__wxjs_is_wkwebview 为true时是使用WKWebview,为 false或者 “undefine”时是 UIWebview 。
5、页面通过LocalID预览图片
变化:
1.2.0以下版本的JSSDK不再支持通过使用chooseImage api返回的localld以如:”img src=wxLocalResource://50114659201332”的方式预览图片。
适配建议:
直接将JSSDK升级为1.2.0新版本即可帮助页面自动适配,但在部分场景下可能无效,此时可以使用getLocalImgData 接口来直接获取数据。
(注释:在wkwebview模式下会出现无法预览图片的现象,解决方法:首先将jweixin升级为1.2.0,若不能解决问题,则需要对getLocalImgData 进行适配调用),具体办法
主要对ios进行适配,localData是图片的base64数据
if (!mui.os.ios) {
event.target.src = res.localIds[0];
// 支持低版本Android系统,延迟100ms执行上传
setTimeout(function() {
vm.uploadImageToWechat(index);
}, 100);
}else{
if (window.__wxjs_is_wkwebview) {
wx.getLocalImgData({
localId: res.localIds[0], // 图片的localID
success: function (res) {
var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
event.target.src = localData;
}
});
} else {
event.target.src = res.localIds[0];
}
vm.uploadImageToWechat(index);
}
以上就是关于wkwebview适配问题的一些知识,更多Android开发技术文章,请持续关注我们。
Copyright ©2004-2018 华清远见教育科技集团 版权所有
京ICP备16055225号,京公海网安备11010802025203号