webview取java的参数值_android webview中使用Java调用JavaScript方法并获取返回值

在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代码:

function setValuesJson(param)

{

alert(param);//param是java传过来的值,即"hello world".

var result = "传回Java的string";

window.stub.jsMethod(result);//用接口stub, 通过调用内部类中的方法jsMethod给java传回result。

}

搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值