发布于 2年前

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

加入上述代码即可。

©2020 edoou.com   京ICP备16001874号-3