android webviewでJavaを使ってJava Scriptメソッドを呼び出してリターン値を取得します。
1985 ワード
androidタブレットでwebviewで一つのホームページを開けて、中のjavascript方法を呼び出して、同時に相互に参を伝えます。ネット上の例はとても少ないです。基本的にリターン値を取得できません。自分の最後のデバッグしたコードを貼ります。以下の通りです。Java:
片付く。
protected void onCreate(Bundle savedInstanceState)
{
........
x = (WebView)this.findViewById(R.id.webView_viewTable);
x.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
x.getSettings().setBuiltInZoomControls(true);
x.getSettings().setJavaScriptEnabled(true);
x.addJavascriptInterface(new JsToJava(), "stub"); //JsToJava , 。stub 。
//x.loadUrl("http://192.168.1.1/init.html");// html 。 load , :
x.loadDataWithBaseURL("", data, "text/html", "UTF-8",""); // data init.html 。 。 FileInputStream 。
x.loadUrl("javascript:setValuesJson('hello world')"); //hello world JavaScript 。setValuesJson JavaScript 。 , :
String url = "javascript:setValuesJson(\"" + jsonString + "\")";
x.loadUrl(url);
.........
}//onCreate
もう一つの内部カテゴリを書きます。
private class JsToJava
{
public void jsMethod(String paramFromJS)
{
//Log.i("CDH", paramFromJS);
System.out.println("js " + paramFromJS);//
}
}
JavaScriptコード:
<br> function setValuesJson(param)
<br> {
<br> alert(param);//param java , "hello world".
<br> var result = " Java string";
<br> window.stub.jsMethod(result);// stub, jsMethod java result。
<br> }
<br>
片付く。