写这篇文是因为在UIWebView加载页面的时候有时候会返回:
filterBlacklist = ( ); filterWhitelist = ( ); restrictWeb = 1; useContentFilter = 0; useContentFilterOverrides = 0; whitelistEnabled = 0;
_WebFilterIsActive returning: NO
网上查询了很多,大概是Htpps的问题。由于目前服务器并不支持https,虽然页面可以加载,但是看到这些输出心里就是不爽。
加载HTTPS请求,但不安全的资源'…'。这个内容也应该是通过HTTPS;
虽然并不知道WKWebView是否能从根本上解决这个问题,但是改为WK以后确实没有同样的输出出现;
另外WK在性能上的确优于UIWebView,但是WK只支持iOS8以后的系统,所以如果项目不要求支持iOS8以下,选择WK是更好的决定;
速度更快了,占用内存少了,一句话,WKWebView
是App内部加载网页的最佳选择!
一、加载网页或HTML代码的方式与UIWebView
相同,代码示例如下:
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]]; [self.view addSubview:webView];
二、加载的状态回调 (WKNavigationDelegate)
// 页面开始加载时调用 - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation; // 当内容开始返回时调用 - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation; // 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation; // 页面加载失败时调用 - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation;
这里插一条。以前我们控制html播放器在页面播放会使用
_webView.allowsInlineMediaPlayback = YES;
在使用WK的时候需要做一些更改:
_webView.configuration.allowsInlineMediaPlayback = YES;
知道以上这些就可以简单的加载出你需要的页面。深层次的用法可以去查询API,另外简书大神的博客可供参考:
http://www.jianshu.com/p/6ba2507445e4