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);
                        }

参考文献:https://mp.weixin.qq.com/wiki

转载于:https://my.oschina.net/u/3366008/blog/877218

你可能感兴趣的:(wkwebview的适配问题)