寫這篇文是因為在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