【问题标题】:remove cache in wkwebview objective c删除 wkwebview 目标 c 中的缓存
【发布时间】:2020-06-05 14:16:01
【问题描述】:

我需要删除 wkwebview 中的缓存。我正在使用下面的代码但没有成功。

 [[NSURLCache sharedURLCache]removeCachedResponseForRequest:request];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    [[NSURLCache sharedURLCache] setDiskCapacity:0];
    [[NSURLCache sharedURLCache] setMemoryCapacity:0];

【问题讨论】:

  • 你要删除什么请解释一下。
  • 你怎么知道它不起作用?
  • 我在我的应用程序中进行了测试。我有不同的网页。当我加载第一页时,一些图像被缓存,所有这些图像都在第二页加载中结转。我已经尝试了上面的行删除缓存的代码,但每次它从缓存中挑选图像时。加载第一页需要 8 秒,第二页需要 4 秒,wkwebview。但在 uiwebview 中,第一页需要 10 秒,第二页需要 8 秒加载。在uiwebview我已经使用了上面的代码。

标签: objective-c ios8 wkwebview


【解决方案1】:
NSSet *dataTypes = [NSSet setWithArray:@[WKWebsiteDataTypeDiskCache,
                                         WKWebsiteDataTypeMemoryCache,
                                         ]];
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:dataTypes
                                           modifiedSince:[NSDate dateWithTimeIntervalSince1970:0]
                                       completionHandler:^{
        }];

【讨论】:

  • 我已经尝试过了,但它会使我的 wkwebview 加载缓慢。
【解决方案2】:

WKWebView 清除缓存 iOS 9.0 +

[[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:WKWebsiteDataStore.allWebsiteDataTypes completionHandler:^(NSArray<WKWebsiteDataRecord *> * _Nonnull records) {
    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:WKWebsiteDataStore.allWebsiteDataTypes forDataRecords:records completionHandler:^{
       CACHE_CLEARED_MSG;
    }];
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    相关资源
    最近更新 更多