1. 程式人生 > >iOS常用方法——WKWebView快取清理的實現

iOS常用方法——WKWebView快取清理的實現

WKWebView是iOS8之後出現的,相較於UIWebView,WKWebView佔用的記憶體更小,還有一些其他的優化。但是如果我們不去主動清理webView產生的快取,兩者都會存在快取這個問題。比如說一個網頁改了一些內容,如果不清理快取,可能很長一段時間我們都沒辦法看到新的內容,唯一的辦法是解除安裝重灌。
為了能讓使用者第一時間能看到內容的更新,我們在開發的時候,每次開啟網頁的時候應該先清理一下快取。iOS提供了清理的介面,下面給出WKWebView清理快取的程式碼:

if ([[[UIDevice currentDevice]systemVersion]intValue ] >= 9.0
) { NSArray * types =@[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]; }

在載入webView的ViewController的viewDidLoad中實現這些程式碼,可以保證每次載入的webView的內容都是最新的。