web-dev-qa-db-ja.com

WKWebViewでローカルストレージを設定する方法はありますか

WKWebViewにリクエストする前にローカルストレージを設定したいのですが、どのiOSバージョンでも可能ですか?

それを行う方法が見つかりません。関連していると思われるクラスはWKWebsiteDataStorehttps://developer.Apple.com/documentation/webkit/wkwebsitedatastore のみです。読み取りと削除。

6
sarunw

@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()

        }            
    }
}
12
sarunw