2017-07-04 53 views
0

ローカルストレージを設定する前に、WKWebViewへのリクエストはすべてのiOSバージョンで可能ですか?WKWebViewでローカルストレージを設定する方法はありますか

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

+0

ページがロードされる前にローカルストレージに値を設定する必要はありますか?その場合、空のWebビューをロードし、ナビゲーションデリゲートを実装し、 'didFinishLoad'コールバックで、ローカルストレージに値を設定するJavaScript行を挿入できます。ここで、最初にロードしたいページをロードします。 – paulvs

+0

はい、ページの言語を決定するために使用します。 – sarunw

答えて

2

ここから@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() 

     }    
    } 
} 
関連する問題