自從WKWebView更新之后,眾多開發者都已經將從WebView轉換成了WKWebView,主要原因是WKWebView的特性:
1:在性能、穩定性、功能方面有很大提升(最直觀的體現就是加載網頁是占用的內存,模擬器加載百度與開源中國網站時,WKWebView占用23M,而UIWebView占用85M);
2:允許JavaScript的Nitro庫加載并使用(UIWebView中限制);
3:支持了更多的HTML5特性;
4:高達60fps的滾動刷新率以及內置手勢;
5:將UIWebViewDelegate與UIWebView重構成了14類與3個協議(查看蘋果官方文檔);
但是在讀取沙盒文件時,卻遇到了一個棘手的問題,無論怎樣拼接路徑,都無法顯示本地html文件,但是在WebView和瀏覽器時就是正常的,不過經過多方查詢,才發現問題所在,需要進行如下創建WKWebView:
WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc] init];
[configuration.preferences setValue:@"TRUE" forKey:@"allowFileAccessFromFileURLs"];
WKWebView * web = [[WKWebView alloc] initWithFrame:self.view.frame configuration:configuration];
參照:
http://bbs.csdn.net/wap/topics/391889971
http://stackoverflow.com/questions/24882834/wkwebview-not-loading-local-files-under-ios-8#new-answer