android webview中使用Java调用JavaScript方法并获取返回值
在android平板上用webview打开一个网页,调用里面的javascript方法,同时相互传参。
网上例子很少啊,基本都不能获取返回值,贴一个自己最后调试完的代码如下:
Java:
protectedvoidonCreate(BundlesavedInstanceState) { ........ x=(WebView)this.findViewById(R.id.webView_viewTable); x.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); x.getSettings().setBuiltInZoomControls(true); x.getSettings().setJavaScriptEnabled(true); x.addJavascriptInterface(newJsToJava(),"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('helloworld')");//helloworld是给JavaScript传递的参数。setValuesJson是页面里JavaScript的方法。如果传递的参数中有双引号的话,用下面的写法: Stringurl="javascript:setValuesJson(\""+jsonString+"\")"; x.loadUrl(url); ......... }//onCreate结束