はい、JavaScript インターフェースを介してこれを実現できます。これを介して、JavaScript はアタッチしたインターフェースで定義された関数を呼び出すことができます。
http://developer.android.com/guide/webapps/webview.html
あなたのActivity
:
WebAppInterface mInterface;
public void onCreate() {
mInterface = new WebAppInterface(this);
mWebView.addJavascriptInterface(mInterface, "MyAndroidInterface")
}
次に、呼び出し先のオブジェクトを定義します。
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
これで、次のJavascript
ことができます。
MyAndroidInterface.showToast("hello world");
native
からへの帰り道Javascript
は、 経由で行うことができますJavascript injection
。で関数を定義Javascript
:
function helloBack(param) {
}
今、あなたは呼び出すことができますmWebView.loadUrl("javascript:helloBack(hi);");