工作忙好久没有学习新东西了,第一份swift程序:
体验uiwebkit和wkwebview的区别:
代码如下:
import UIKit
import WebKit
class ViewController: UIViewController {
// var wk:WKWebView!
var uk:UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// self.wk = WKWebView(frame: self.view.frame)
// self.wk.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com/")!))
// self.view.addSubview(self.wk)
self.uk = UIWebView(frame: self.view.frame)
self.uk.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com/")!))
self.view.addSubview(self.uk)
}
}
仅打开百度首页两者的性能对比:
UIWebView:内存20M
WKWebView:内存6M
在线观看视频:
UIWebView: CPU 10% 内存50M
WKWebView:CPU 2% 内存10M
可以看出WKWebView在性能上提升明显。
WKWebView的用法介绍
适用于ios>8.0
遵守 WKNavigationDelegate,WKUIDelegate协议。
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
执行跳转判断操作:decisionHandler(WKNavigationActionPolicyAllow);//执行 decisionHandler(WKNavigationActionPolicyCancel);//取消 。
类似的UIWebView
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
根据navigationType的类似判断是何种操作,是否执行跳转。