2011-07-07 1 views

答えて

0

これを行うためのフレームワークは必要ありません。 AndroidのWebViewは、「addJavascriptInterface」メソッドを使用して、あらゆるJavaオブジェクトを非常に簡単にバインドできます。例:

myWebView.addJavascriptInterface(new MyJavaObject(), "myobj"); 

JavaScriptでアクセスするメソッドを含む「MyJavaObject」クラスを作成するだけです。 "myobj"文字列は、JavaオブジェクトにアクセスするためにJavaScriptコードで参照する変数です。例:

MyJavaObject.java:

... 
public int add(int parm1, int parm2) { 
    return parm1 + parm2; 
} 
... 

はJavaScript:

... 
var val = myobj.add(1,2); 
... 

あなたのAPKにバンドルHTMLにアクセスしている場合は、特別な何かをする必要はありません。あなたのアプリケーションが他の場所でホストされているHTMLに依存している場合は、WebViewでカスタムWebViewClientを作成し、 "shouldOverrideUrlLoading"メソッドをオーバーライドする必要があります(ヒント:trueを返します)。コード:

myWebView.setWebViewClient(new WebViewClient() { 
    ... 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return true; 
     } 
    ... 
}); 

これが役立ちます。

+0

お返事ありがとうございます。しかし、この変形は私には適していません。 HTMLを使わずにJavaScriptコードを実行したいのであれば、* .js *ファイルがあればどうなるでしょうか? – teoREtik

0

最も簡単なアプローチは、Rhinoです。これはJavaで書かれたMozillaのJavascriptインタープリタで、Javaオブジェクトへの自動Javascriptバインディングも提供しています。コンパイルモードではなくインタープリットモードで実行する必要があります(コンパイルモードではAndroid上に動的にロードされないJavaバイトコードが生成されるため)が、これは非常に簡単です。