美文网首页
[iOS]UIWebView与WKWebView使用

[iOS]UIWebView与WKWebView使用

作者: noikin | 来源:发表于2016-10-09 17:05 被阅读487次

UIWebView和WKWebView都是属于加载网页的框架。曾经做过一个项目,要用到加载网页,我使用了UIWebView,程序正常,不崩溃,但是打开内存管理一看,我去!~~内存秒秒钟飙升了十多兆,并且内存有增无减,幸运的是还没有造成内存泄漏。最后,去论坛请教了大神,换用了WKWebView来完成项目。废话不多说,下面来浅谈一下两者的区别。

UIWebView WKWebView
内存吃紧 内存近乎于UIWebView的一半
加载耗时长 加载耗时速度相对较长

这是目前两者间区别最大的部分

WKWebView的优势

  • 适应更多的HTML5特性
    (因为当下HTML5的动画炫酷,并且属于当下热门语言,发展确实尚好)

WKWebView使用

-(WKWebView *)webView{
    if (!_webView) {
        _webView = [[WKWebView alloc] initWithFrame:
        CGRectMake(0, 85, 
                                     [UIScreen mainScreen].bounds.size.width,
        [UIScreen mainScreen].bounds.size.height - self.headview.frame.size.height)];
        _webView.backgroundColor = [UIColor whiteColor];
        _webView.allowsBackForwardNavigationGestures = YES;
        _webView.navigationDelegate = self;  
    }
    return _webView;
}

使用WKNavigationDelegate代理方法(主要方法)
它还有UIDelegate代理方式【主要用于对窗口等的操作】

-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
//客户端收到服务器跳转请求后的操作(重要)
}

-(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
//开始加载时调用
}

-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
//加载完成时调用
}

-(void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error{
//加载失败时候调用
}

UIWebView的使用

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
//准备加载时候调用
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
//加载失败时候调用
}
- (void)webViewDidStartLoad:(UIWebView *)webView{
//开始时候调用
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
//结束时候调用
}

注意

UIWebView的shouldStartLoad方法和WKWebView的decidePolicyForNavigation方法相似(不要和WKWebView的didStartProvisionalNavigation方法弄混)
使用WKWebView的时候一定要导入#import<WebKit/WebKit.h>

相关文章

网友评论

      本文标题:[iOS]UIWebView与WKWebView使用

      本文链接:https://www.haomeiwen.com/subject/qrnpyttx.html