2017-01-06
微信iOS客户端将于3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配。
目前可以通过手动变换内核方式测试网页是否正常,大部分还是正常,但还是会出现错位,加载速度和执行效率明显提高了很多,更加轻快。
WKWebview是苹果为支持最新的Webkit功能,自iOS 8起引入的网页浏览控件。目的是提供一个现代的支持最新Webkit功能的网页浏览控件,摆脱过去 UIWebView的老、旧、笨,特别是内存占用量巨大的问题。它使用与Safari中一样的Nitro JavaScript引擎,大大提高了页面js执行速度。开发者可以在微信已发布的6.5.3版本客户端中,手动切换到WKWebview,再检查自己的网页表现是否正常。
页面如何判断当前使用的webview内核:
在页面中可通过微信注入的window.__wxjs_is_wkwebview变量判断当前使用的webview内核。 iOS微信6.5.3及其之后的版本 window.__wxjs_is_wkwebview 为true时是使用WKWebview,为 false或者 “undefine”时是 UIWebview 。
适配的首要原则:若不能区分是WKWebview的新特性新行为还是微信内部逻辑导致原有页面出现问题时,可使用测试页面分别在Safari和微信中的WKWebview内核分别测试,用以快速定位问题产生的原因。
适配指南
切换为WKWebview后,微信中的Webview行为和Safari中保持高度一致,唯一的区别是微信Webview中会注入微信JSBridge相关的脚本。所以适配的重点需要关注以下几个方面:
一:页面功能是否正常
二:页面屏幕适配是否正常 三:页面行为是否正常(例如用户在浏览页面时点击返回按钮返回上一个页面时的页面逻辑是否正常)
四:页面使用的语法是否兼容。
五:JSSAPI是否正常完美的工作。
六:重点关注Cookie和LocalStorage等相关的逻辑是否正常。
七:若服务器有设置返回 Cache-Control缓存有效时间,则需要检查相关逻辑是否正常。
正常情况下,你的页面是不需要做特别的适配,但若你的页面有涉及到以下几个受影响的逻辑,则需要根据适配建议进行适配和确认。
由于本次升级影响了图片预览、Cookie使用、JSSDK鉴权等多项功能,所以建议所有开发者根据《WKWebview网页开发适配指南》完整排查,以确保升级后自身网页可以正常使用。