欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android webview中使用Java調(diào)用JavaScript方法并獲取返回值

 更新時(shí)間:2015年03月16日 10:57:19   投稿:junjie  
這篇文章主要介紹了android webview中使用Java調(diào)用JavaScript方法并獲取返回值,本文直接給出代碼示例,需要的朋友可以參考下

在android平板上用webview打開一個(gè)網(wǎng)頁,調(diào)用里面的javascript方法,同時(shí)相互傳參。
網(wǎng)上例子很少啊,基本都不能獲取返回值,貼一個(gè)自己最后調(diào)試完的代碼如下:
Java:

復(fù)制代碼 代碼如下:

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是內(nèi)部類,代碼在后面。stub是接口名字。

//x.loadUrl("http://192.168.1.1/init.html");//這句是載入一個(gè)html頁面。但是因?yàn)橹苯觢oad一個(gè)網(wǎng)頁會(huì)有延遲,所以最好用下面這句:
x.loadDataWithBaseURL("", data, "text/html", "UTF-8","");  //這句里面data是init.html的內(nèi)容。就是代碼。直接用FileInputStream獲取到就好。

x.loadUrl("javascript:setValuesJson('hello world')"); //hello world是給JavaScript傳遞的參數(shù)。setValuesJson是頁面里JavaScript的方法。如果傳遞的參數(shù)中有雙引號(hào)的話,用下面的寫法:
String url = "javascript:setValuesJson(\"" + jsonString + "\")";
x.loadUrl(url);
.........
}//onCreate結(jié)束

再寫一個(gè)內(nèi)部類:

復(fù)制代碼 代碼如下:

private class JsToJava
{
        public void jsMethod(String paramFromJS)
        {
            //Log.i("CDH", paramFromJS);
            System.out.println("js返回結(jié)果" + paramFromJS);//處理返回的結(jié)果
        }
}

JavaScript代碼:

復(fù)制代碼 代碼如下:

<script type="text/javascript">
        function setValuesJson(param)
        {
            alert(param);//param是java傳過來的值,即"hello world".
            var result = "傳回Java的string";
            window.stub.jsMethod(result);//用接口stub, 通過調(diào)用內(nèi)部類中的方法jsMethod給java傳回result。
        }
</script>

  
搞定。

相關(guān)文章

最新評論