最終的にこの機能自体は使わないことにしましたが、せっかく調べたのでやり方をまとめます。
WKWebView
でキャッシュ等のデータを削除する方法についてです。
今回参考にさせていただいた記事はこちら。
WKWebViewのキャッシュなどをクリアする – しめ鯖日記
https://llcc.hatenablog.com/entry/2017/05/02/223000
さて、削除方法ですが、データを削除したいタイミングで下記のコードを実行するだけです。
WKWebsiteDataStore.default().removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), modifiedSince: Date(timeIntervalSince1970: 0), completionHandler: {})
上記を実行後、確認したところ、きちんとキャッシュ等のデータが削除されていました。
ただし、こちらの方法ではキャッシュや Cookie など、削除可能なデータが全て削除されてしまうため、削除したいデータを指定したい場合は、下記のように第一引数に指定するように変更してください。
WKWebsiteDataStore.default().removeData(ofTypes: [WKWebsiteDataTypeMemoryCache], modifiedSince: Date(timeIntervalSince1970: 0), completionHandler: {})
なお、削除できるデータは下記の通りです。
- WKWebsiteDataTypeDiskCache
- WKWebsiteDataTypeMemoryCache
- WKWebsiteDataTypeOfflineWebApplicationCache
- WKWebsiteDataTypeCookies
- WKWebsiteDataTypeSessionStorage
- WKWebsiteDataTypeLocalStorage
- WKWebsiteDataTypeWebSQLDatabases
- WKWebsiteDataTypeIndexedDBDatabases
削除したい項目を、第一引数に配列形式で指定しましょう。
以上、Swift の WKWebView でキャッシュ等のデータを削除する方法でした。
ご参考になれば幸いです。