在iOS8以上使用了WKWebView,WKWebView在内存和性能上都远胜UIWebView
1、在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而UIWebView占用85M);
2、允许JavaScript的Nitro库加载并使用(UIWebView中限制);
支持了更多的HTML5特性;
3、高达60fps的滚动刷新率以及内置手势;
4、将UIWebViewDelegate与UIWebView重构成了14类与3个协议(查看苹果官方文档https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/ObjC_classic/index.html);
更换后,出现两个大坑:
1、之前通过写NSHTTPCookieStorage与h5同步登录状态失败
2、内部h5使用第三方调起协议全部实效
1、WKWebView不会再从NSHTTPCookieStorage取cookie,而是需要在初始化时通过WKUserScript写入
2、WKWebView无法识别的协议(比如我们第三方调起的)会直接进入失败的delegate方法中,不会像UIWebView那样默认调用openURL方法,所以对于我们自己的的协议头,需要我们手动调用一下openURL
1、在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而UIWebView占用85M);
2、允许JavaScript的Nitro库加载并使用(UIWebView中限制);
支持了更多的HTML5特性;
3、高达60fps的滚动刷新率以及内置手势;
4、将UIWebViewDelegate与UIWebView重构成了14类与3个协议(查看苹果官方文档https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/ObjC_classic/index.html);
更换后,出现两个大坑:
1、之前通过写NSHTTPCookieStorage与h5同步登录状态失败
2、内部h5使用第三方调起协议全部实效
1、WKWebView不会再从NSHTTPCookieStorage取cookie,而是需要在初始化时通过WKUserScript写入
2、WKWebView无法识别的协议(比如我们第三方调起的)会直接进入失败的delegate方法中,不会像UIWebView那样默认调用openURL方法,所以对于我们自己的的协议头,需要我们手动调用一下openURL