源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android webview中使用Java调用JavaScript方法并获取返回值

  • 时间:2020-07-05 04:34 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android webview中使用Java调用JavaScript方法并获取返回值
在android平板上用webview打开一个网页,调用里面的javascript方法,同时相互传参。 网上例子很少啊,基本都不能获取返回值,贴一个自己最后调试完的代码如下: Java:
[u]复制代码[/u] 代码如下:
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结束
再写一个内部类:
[u]复制代码[/u] 代码如下:
private class JsToJava {         public void jsMethod(String paramFromJS)         {             //Log.i("CDH", paramFromJS);             System.out.println("js返回结果" + paramFromJS);//处理返回的结果         } }
JavaScript代码:
[u]复制代码[/u] 代码如下:
<script type="text/javascript">         function setValuesJson(param)         {             alert(param);//param是java传过来的值,即"hello world".             var result = "传回Java的string";             window.stub.jsMethod(result);//用接口stub, 通过调用内部类中的方法jsMethod给java传回result。         } </script>
   搞定。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部