アンドロイドには、javax.scriptのようなフレームワークがあります。プログラマーは、Javaコードで作成されたオブジェクトをJavaScriptコードでバインドできますか?JavaScriptへのアンドロイドオブジェクトのバインド
0
A
答えて
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
最も簡単なアプローチは、Rhinoです。これはJavaで書かれたMozillaのJavascriptインタープリタで、Javaオブジェクトへの自動Javascriptバインディングも提供しています。コンパイルモードではなくインタープリットモードで実行する必要があります(コンパイルモードではAndroid上に動的にロードされないJavaバイトコードが生成されるため)が、これは非常に簡単です。
お返事ありがとうございます。しかし、この変形は私には適していません。 HTMLを使わずにJavaScriptコードを実行したいのであれば、* .js *ファイルがあればどうなるでしょうか? – teoREtik