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>
  
片付く。