wkwebview清除缓存

2022-04-19  本文已影响0人  nick5683

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("清空缓存完成")
        }
    
}

上一篇下一篇

猜你喜欢

热点阅读