WKWebView清除緩存
WKWebView清除緩存只能iOS9使用,低于iOS9運(yùn)行會(huì)崩潰哦!所以,為了適配iOS7和iOS8,還是要做版本判斷
if ([[[UIDevice currentDevice]systemVersion]intValue ] >= 9.0) {
NSArray * types =@[WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache]; // 9.0之后才有的
/*
NSArray *type = @[WKWebsiteDataTypeDiskCache, // 磁盤(pán)緩存
WKWebsiteDataTypeMemoryCache, // 內(nèi)存緩存
WKWebsiteDataTypeOfflineWebApplicationCache, // HTML 離線 Web 應(yīng)用程序緩存。
WKWebsiteDataTypeCookies, // Cookies
WKWebsiteDataTypeSessionStorage, // HTML 會(huì)話存儲(chǔ)
WKWebsiteDataTypeLocalStorage, // HTML 本地存儲(chǔ)
WKWebsiteDataTypeWebSQLDatabases, // WebSQL 數(shù)據(jù)庫(kù)
WKWebsiteDataTypeIndexedDBDatabases, // IndexedDB 數(shù)據(jù)庫(kù)
];
*/
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之后出現(xiàn)的,相較于UIWebView,WKWebView占用的內(nèi)存更小,還有一些其他的優(yōu)化。但是如果我們不去主動(dòng)清理webView產(chǎn)生的緩存,兩者都會(huì)存在緩存這個(gè)問(wèn)題。比如說(shuō)一個(gè)網(wǎng)頁(yè)改了一些內(nèi)容,如果不清理緩存,可能很長(zhǎng)一段時(shí)間我們都沒(méi)辦法看到新的內(nèi)容,唯一的辦法是卸載重裝。
在加載webView的ViewController的viewDidLoad中實(shí)現(xiàn)這些代碼,可以保證每次加載的webView的內(nèi)容都是最新的。