UIWebView与WKWebView清除缓存
在混合开发过程中,由于缓存问题,经常出现web端代码已经修改,而原生展示还是没有改变,这个就是webView自带的缓存机制
这时,我们就希望在合适的地方,自己手动删除缓存,方法如下:
UIWebView
//清除cookies
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
[storage deleteCookie:cookie];
}
// 清除webView的缓存
[[NSURLCache sharedURLCache] removeAllCachedResponses];
WKWebView
NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
//// Date from
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
//// Execute
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
// Done
}];
比如我希望程序在结束后台的时候删除缓存,就只需要在AppDelegate
中找到函数:
- (void)applicationWillTerminate:(UIApplication *)application
加入上述代码即可。