2013-08-13 11 views
6

私はAndroid用PhoneGapアプリケーションを開発しました。 アプリケーションは、ウェブアプリケーション(HTML/jQuery)とバックグラウンドサービス(Javaコード)によって構成され、webappによって開始されます。AndroidサービスはlocalStorageを読み込みますか?

このWebアプリケーションは、私のJavaコードからのlocalStorageにあるこの名前を読み取ることが可能です

<script> 
     window.localStorage.setItem("name","MyName"); 
    </script> 

ようwindow.localStorageへの書き込み?

答えて

8

これは可能です。 JavaScriptを実行し、次のようにあなたが行うことができます応答を取得するには、次の

コード内でJavaScriptのコールバックインターフェイスを定義します。あなたのJavaScript呼び出してウィンドウを実行します

MyJavaScriptInterface javaInterface = new MyJavaScriptInterface(); 
webView.addJavascriptInterface(javaInterface, "HTMLOUT"); 

class MyJavaScriptInterface { 
    public void someCallback(String jsResult) { 
     // this will be passed the local storage name variable 
    } 
} 

があなたのWebViewにこのコールバックを取り付け.HTMLOUT.someスクリプトからのコールバック:

webView.loadUrl("javascript:(function() { var name = window.localStorage['name']; window.HTMLOUT.someCallback(name); })()"); 

注 - window.localStorage['name']あなたがインターフェイスを追加するsuper.webView.addJavascriptInterfaceまたはsuper.addJavascriptInterfaceを使用する必要がありますwindow.localStorage.getItem('name')

This post here on stackoverflow helped me

と同じです。これを呼び出すには、super.webView.loadUrlまたはsuper.loadUrlを使用する必要があります。それは、あなたがどこから呼び出すのかによって異なります。

+1

こんにちは@Rossを!答えてくれてありがとう! – Saxophonist

+0

@エヴァンドロお元気です、嬉しいです。 – Ross

+0

@Rossこれは古い話題ですが、この方法をCordovaプラグインで完全に実装したレポを教えてください。このコードを使用するようにCordova Deviceプラグインを変更しようとしていますが、エラーが発生しています。私はほとんどすべてのJavaを知っています。私はこのコードの実際の例を見たいと思います。 :D –

2

cordova-plugin-nativestorageプラグインを使用して、android javaファイルのlocalstorageを読み込みます。

それはIOSのためだ、アンドロイドPlateform

このプラグインはnativeStorage

コルドバの構文を使用します。

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

Anroid JAVA:

SharedPreferences sharedPreferences = getSharedPreferences("MainActivity", MODE_PRIVATE); 
System.out.println("********--------- shared pref values... " + sharedPreferences.getString("myid", "no value")); 
関連する問題