1. 程式人生 > >iOS開發 WKWebView快取清理

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的內容都是最新的。