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