Created
Nov 9, 2019 7:39 AM
Tags
SwiftMemo
Keywords
WKWebsiteDataStore.default
はWKWebViewで使用しているConfigurationによるものなので、適切なDataStoreを使う
let dataStore = WKWebsiteDataStore.default()
dataStore.fetchDataRecords(
ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
completionHandler: { records in
records.forEach { record in
dataStore.removeData(
ofTypes: record.dataTypes,
for: [record],
completionHandler: {
})
}
})
おまけで、FetchとRemoveは非同期なので、全部終わったことを通知として知るには`DispatchGroup`を使う。
let group = DispatchGroup()
let dataStore = WKWebsiteDataStore.default()
group.enter()
group.notify(queue: .main) {
Log.info("Deleted Cookie on WKWebsiteDataStore")
}
dataStore.fetchDataRecords(
ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
completionHandler: { records in
records.forEach { record in
group.enter()
dataStore.removeData(
ofTypes: record.dataTypes,
for: [record],
completionHandler: {
group.leave()
})
}
group.leave()
})