2012-02-25 10 views
5

私はWebViewを持つ簡単なAndroidアプリを持っています。 WebViewは、JavaScriptのlocalStorage機能を使用するサイトを参照するように設定されています。私はすでに私のWebSettingsがDomStorage許可するように設定するんだAndroid - Javaから直接HTML5 localStorageデータを読む

:私は必要なもの

webSettings.setJavaScriptEnabled(true); 
ebSettings.setDomStorageEnabled(true); 

String dbPath = this.getApplicationContext().getDir("database", MODE_PRIVATE).getPath();   
webSettings.setDatabasePath(dbPath); 

はつまり、私のJavaコードはのlocalStorageメカニズムを使用して格納された変数を読み取ることができるという方法です。:

JavaScriptはこれを行います:

var storage = window.localStorage; 
    storage.setItem("name", "Hello World!"); 

JavaコードからlocalStorageの "name"の値を読み取るにはどうすればよいですか? JavaScriptの

window.JSInterface.getVariable(localStorage.getItem("variableName")) 

答えて

0
yourWebView.setWebChromeClient(new WebChromeClient(){ 
     public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
     Log.d(tag, "That's my local storage value =" + message); 
     return false; 
     }; 
    }); 
(...) 
    yourWebView.loadURL("javascript:alert(localStorage.getItem(\"name\"))"); 
+0

これは私が与える:「読み取りに失敗しました。私たちは

NativeStorage.setItem("reference", obj, setSuccess, setError); function setSuccess(obj){ } function setError(obj){ } 

コルドバにそしてAnroid Javaファイルで値を設定する必要が

-forは、この値を取得します'Window'の 'localStorage'プロパティ:このドキュメントのアクセスは拒否されました。 – Onheiron

+0

@Onheiron私も同じ問題に直面しています。あなたはそれを解決しましたか? –

0
あなたの活動の

webView.addJavascriptInterface(myInterface, "JSInterface"); 

Javascriptのインターフェイスクラス

class myInterface 
{ 

    @JavascriptInterface 
    public void getVariable(string fromLocalStorage) 
    { 
    //your code 
    } 

} 

このプラグインは、ネイティブストレージを使用するhttps://www.npmjs.com/package/cordova-plugin-nativestorage を使用してください。 「キャッチされない例外SecurityError:

SharedPreferences sharedPreferences = getSharedPreferences("MainActivity", MODE_PRIVATE); 
    System.out.println("********--------- shared pref values... " + sharedPreferences.getString("myid", "no value")); 
1

(アンドロイド)JavaでのlocalStorage値を読み取るはい可能で

関連する問題