清除WKWebView的缓存

Posted Sinner_Yun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清除WKWebView的缓存相关的知识,希望对你有一定的参考价值。

  1 OC写法:     swift写法再下下面。
  2 
  3 清除WKWebView的缓存,让H5页面一刷新就更新至最新的页面
  4 
  8 
  9 要区分ios9.0和8.0两种
 10 
 11 - (void)deleteWebCache {
 12 
 13     
 14 
 15     if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) {
 16 
 17         NSSet *websiteDataTypes
 18 
 19         = [NSSet setWithArray:@[
 20 
 21                                 WKWebsiteDataTypeDiskCache,
 22 
 23                                 //WKWebsiteDataTypeOfflineWebApplicationCache,
 24 
 25                                 WKWebsiteDataTypeMemoryCache,
 26 
 27                                 //WKWebsiteDataTypeLocalStorage,
 28 
 29                                 //WKWebsiteDataTypeCookies,
 30 
 31                                 //WKWebsiteDataTypeSessionStorage,
 32 
 33                                 //WKWebsiteDataTypeIndexedDBDatabases,
 34 
 35                                 //WKWebsiteDataTypeWebSQLDatabases
 36 
 37                                 ]];
 38 
 39         //// All kinds of data
 40 
 41         //NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
 42 
 43         //// Date from
 44 
 45         NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
 46 
 47         //// Execute
 48 
 49         [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
 50 
 51             // Done
 52 
 53         }];
 54 
 55  
 56 
 57     } else {
 58 
 59         
 60 
 61         NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
 62 
 63         NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"];
 64 
 65         NSError *errors;
 66 
 67         [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors];
 68 
 69         
 70 
 71     }
 72 
 73 }
 74 
 75  
 76 
 77  
 78 
 79 swift:
 80 
 81 // MARK: - 清空缓存
 82 
 83     func ClearCache() {
 84 
 85  
 86 
 87         let dateFrom: NSDate = NSDate.init(timeIntervalSince1970: 0)
 88 
 89  
 90 
 91         if #available(iOS 9.0, *) {
 92 
 93             let websiteDataTypes: NSSet = WKWebsiteDataStore.allWebsiteDataTypes()
 94 
 95             WKWebsiteDataStore.defaultDataStore().removeDataOfTypes(websiteDataTypes as! Set<String>, modifiedSince: dateFrom) {
 96 
 97                 print("清空缓存完成")
 98 
 99             }
100 
101         } else {
102 
103               let libraryPath = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]
104 
105             let cookiesFolderPath = libraryPath.stringByAppendingString("/Cookies")
106 
107             let errors: NSError
108 
109             try? NSFileManager.defaultManager().removeItemAtPath(cookiesFolderPath)
110 
111         }
112 
113     }

 

以上是关于清除WKWebView的缓存的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Facebook 登录即使在卸载应用程序后清除缓存和注销

如何清除 UIWebView/WKWebView 的内容?

如何清除包含在重复使用的自定义 UITableViewCell 中的 WKWebview?

如何使用 Tablayout 清除 Viewpager 的缓存内存

WKWebView 最大缓存对象大小

android中 如何清理webview缓存?