2015-10-27 10 views
10

WebViewでURLを読み込む前に、ブラウザLocalStorageの値を設定します。Android - WebView.loadUrl()の前にLocalStorageの値を保存する

これまでのところ、この値を設定した唯一の方法は、ページが読み込まれた後です。

browser.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageFinished(WebView view, String url) { 
       loadUrl("javascript: LocalStorage.set('namespace', 'key', 'value');"); 
     } 
} 

私は方法onPageStarted()を上書きしようとしましたが、値が格納されていない:これは私が値を設定することができる方法です。

コールの前にこのキー/値を設定するにはどうすればよいですか?browser.loadUrl()? url/pageはこの値に依存するので、ページをロードする前に値を設定する必要があります。

+0

を参照してください、あなたは物事を保存したい場合は...? – OWADVL

+0

私はWebviewの中にデータを保存する必要があるので、WebページのJavaScriptがそれを読むことができます。私はSharedPreferencesが私の問題を解決する方法を見ていない。 – Bugdr0id

答えて

5

実際のURLにjavascriptにリダイレクトを設定し、webview.loadData()を使用してjavascriptとリダイレクトを読み込みます。それが動作する前に、あなたが最初のファイルにそれを保存する必要があるかもしれないけれども

String injection = "<html><head><script type='javascript'>LocalStorage.set('namespace', 'key', 'value');window.location.replace('YOUR_URL_HERE');</script></head><body></body></html>"; 
webview.loadData(injection, "text/html", null); 

は注意してください。(例)SharedPreferencesを使用していない理由をHow to load a javascript redirect into android webview?

関連する問題