wkwebview清除缓存

Tips: 以下方法仅针对iOS9.0以上版本可用,iOS1-iOS9.0之间版本可查询其他方法,由于版本老旧,在这里暂不提供支持

  • 清理全部缓存
    func clearWebCache() {
        // MARK: - 清空缓存
        let dateFrom: NSDate = NSDate.init(timeIntervalSince1970: 0)
        if #available(iOS 9.0, *) {
            let websiteDataTypes = WKWebsiteDataStore.allWebsiteDataTypes()
            WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes , modifiedSince: dateFrom as Date) {
                print("清空缓存完成")
                NK_ProgressHud.showJustText(msg: "清空缓存完成")
            }
        } else {
            let libraryPath = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)[0]
            let cookiesFolderPath = libraryPath.appending("/Cookies")
            try? FileManager.default.removeItem(atPath: cookiesFolderPath)
        }
    }
  • 清理部分缓存
func customDeleteWebCache() {
    /*
     //  在磁盘缓存上。
     WKWebsiteDataTypeDiskCache,
     
     // html离线Web应用程序缓存。
     WKWebsiteDataTypeOfflineWebApplicationCache,
     
     // 内存缓存。
     WKWebsiteDataTypeMemoryCache,
     
     // 本地存储。
     WKWebsiteDataTypeLocalStorage,
     
     // Cookies
     WKWebsiteDataTypeCookies,

     // 会话存储
     WKWebsiteDataTypeSessionStorage,
     
     // IndexedDB数据库。
     WKWebsiteDataTypeIndexedDBDatabases,
     
     // 查询数据库。
     WKWebsiteDataTypeWebSQLDatabases
     */
            
        let types = [WKWebsiteDataTypeCookies, WKWebsiteDataTypeLocalStorage, WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache, WKWebsiteDataTypeOfflineWebApplicationCache];
        let dateFrom: NSDate = NSDate.init(timeIntervalSince1970: 0)
        let set = Set.init(types)
        WKWebsiteDataStore.default().removeData(ofTypes: set, modifiedSince: dateFrom as Date) {
            print("清空缓存完成")
        }
    
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自iOS8以来新出的WKWebView,大大优化了UIWebView的内存飙升问题,使得开发者迫不及待的用它来替换...
    Jason_逆阅读 32,912评论 20 33
  • iOS8WKWebview没有提供清理缓存的接口,但是可以用下面的方法来清理
    806349745123阅读 6,893评论 0 2
  • 最近用WKWebView的人貌似越来越多了,有很多人问这个怎么清除缓存,下面就是清除缓存的方法,大家一起来看看行不...
    追沐阅读 10,279评论 0 4
  • 在UIWebView下,可以使用 [[NSURLCache sharedURLCache] removeAllCa...
    陌宇凡阅读 10,944评论 0 1
  • WKWebView如何清除缓存 iOS7.0只有UIWebView, 而iOS8.0是有WKWebView, 但8...
    呆呆羞阅读 25,520评论 9 41