1
WKWebView
を使用してコンテンツ管理システムにログインしています。アプリを構築した後、WKWebView
はまだウェブサイトにログインしています。この情報を格納しているキャッシュをクリアするにはどうすればよいですか?WKWebiewのキャッシュを消去するプロパティまたはメソッド
WKWebView
を使用してコンテンツ管理システムにログインしています。アプリを構築した後、WKWebView
はまだウェブサイトにログインしています。この情報を格納しているキャッシュをクリアするにはどうすればよいですか?WKWebiewのキャッシュを消去するプロパティまたはメソッド
この回答が見つかりましたhere
if #available(iOS 9.0, *)
{
let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache])
let date = NSDate(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes as! Set<String>, modifiedSince: date as Date, completionHandler:{ })
}
else
{
var libraryPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, false).first!
libraryPath += "/Cookies"
do {
try FileManager.default.removeItem(atPath: libraryPath)
} catch {
print("error")
}
URLCache.shared.removeAllCachedResponses()
}
私はここで、次のコードを見つけました:Removing cached data for WKWebView
let dataStore = WKWebsiteDataStore.default()
dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { (records) in
for record in records {
print(record.displayName)
if record.displayName.contains("facebook") {
dataStore.removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), for: [record], completionHandler: {
print("Deleted: " + record.displayName);
})
}
}