WKWebView
にリクエストする前にローカルストレージを設定したいのですが、どのiOSバージョンでも可能ですか?
それを行う方法が見つかりません。関連していると思われるクラスはWKWebsiteDataStore
https://developer.Apple.com/documentation/webkit/wkwebsitedatastore のみです。読み取りと削除。
@paulvsのコメントからここに私がやっていることです。
終了したコールバックをリッスンするようにナビゲーションデリゲートを設定します。
webView.navigationDelegate = self
次に、コールバックで、localStorageの値を確認し、必要に応じて設定します。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
webView.evaluateJavaScript("localStorage.getItem(\"key\")") { (result, error) in
// check if result is what I want
// if it is what I want, do nothing
// if not set it
webView.evaluateJavaScript("localStorage.setItem(\"key\", \"value\")") { (result, error) in
webView.reload()
}
}
}