iOS開發 WKWebView快取清理
WKWebView清除快取只能iOS9使用,低於iOS9執行會崩潰哦!所以,為了適配iOS7和iOS8,還是要做版本判斷
if ([[[UIDevice currentDevice]systemVersion]intValue ] >= 9.0) {
NSArray * types [email protected][WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache]; // 9.0之後才有的
NSSet *websiteDataTypes = [NSSet setWithArray:types];
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
}];
}else{
NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) objectAtIndex:0];
NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"];
NSLog(@"%@", cookiesFolderPath);
NSError *errors;
[[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors];
}
WKWebView是iOS8之後出現的,相較於UIWebView,WKWebView佔用的記憶體更小,還有一些其他的優化。但是如果我們不去主動清理webView產生的快取,兩者都會存在快取這個問題。比如說一個網頁改了一些內容,如果不清理快取,可能很長一段時間我們都沒辦法看到新的內容,唯一的辦法是解除安裝重灌。
在載入webView的ViewController的viewDidLoad中實現這些程式碼,可以保證每次載入的webView的內容都是最新的。