第一種方法是手動清理所有緩存
??
func clearCache() {
let dataStore = WKWebsiteDataStore.default()
dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), completionHandler: { (records) in
for record in records{
//清除本站的cookie
if record.displayName.contains("baidu.com"){
//這個判斷注釋掉的話是清理所有的cookie
WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {
//清除成功
print("清除成功\(record)")
})
}
}
})
}
記得 import WebKit
第二種方法就是根據(jù)NSURLRequestCachePolicy
作調(diào)整
1.//默認的cache policy酣溃,使用Protocol協(xié)議定義
NSURLRequestUseProtocolCachePolicy NSURLRequest
2.// 忽略緩存直接從原始地址下載盒发。
NSURLRequestReloadIgnoringCacheData
3.只使用cache數(shù)據(jù),如果不存在cache,請求失敻幌摇峻黍;用于沒有建立網(wǎng)絡(luò)連接離線模式
NSURLRequestReturnCacheDataDontLoad
4.只有在cache中不存在data時才從原始地址下載
NSURLRequestReturnCacheDataElseLoad
5.忽略本地和遠程的緩存數(shù)據(jù)旬渠,直接從原始地址下載甲献,與NSURLRequestReloadIgnoringCacheData類似
NSURLRequestReloadIgnoringLocalAndRemoteCacheData
6.驗證本地數(shù)據(jù)與遠程數(shù)據(jù)是否相同,如果不同則下載遠程數(shù)據(jù)立磁,否則使用本地數(shù)據(jù)
NSURLRequestReloadRevalidatingCacheData
??
let webView = WKWebView(frame: CGRect.zero, configuration: WKWebViewConfiguration())
let url = "www.baidu.com"
let request = URLRequest(url: url, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 10.0)
webView.load(request)