iOS開發 WKWebView緩存清理

WKWebView清除緩存只能iOS9使用,低於iOS9運行會崩潰哦!因此,爲了適配iOS7和iOS8,仍是要作版本判斷web

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];cookie

    }優化

WKWebView是iOS8以後出現的,相較於UIWebView,WKWebView佔用的內存更小,還有一些其餘的優化。可是若是咱們不去主動清理webView產生的緩存,二者都會存在緩存這個問題。好比說一個網頁改了一些內容,若是不清理緩存,可能很長一段時間咱們都沒辦法看到新的內容,惟一的辦法是卸載重裝。 

在加載webView的ViewController的viewDidLoad中實現這些代碼,能夠保證每次加載的webView的內容都是最新的。內存