android webview中使用Java调用JavaScript方法并获取返回值
作者:junjie 时间:2022-03-01 20:00:57
在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代码:
<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>
搞定。
标签:android,webview,Java,JavaScript
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
WinFrom中label背景透明的实现方法
2023-05-08 13:05:40
带你一文深入认识Java String类
2023-10-15 10:55:54
![](https://img.aspxhome.com/file/2023/4/64154_0s.png)
Android TextWatcher监控EditText中的输入内容并限制其个数
2022-08-18 13:27:41
java 可变参数详解及实例
2021-06-01 10:02:42
避免sql注入_动力节点Java学院整理
2023-08-21 17:39:12
详解JAVA 弱引用
2022-03-12 01:30:29
如何使用HttpClient发送java对象到服务器
2022-10-29 06:45:51
Java获得当前时间前指定几个小时具体时间的方法示例
2023-11-24 04:56:49
![](https://img.aspxhome.com/file/2023/7/59727_0s.jpg)
C#检查字符串是否是合法URL地址的方法
2022-08-09 16:24:06
java中Class.forName的作用浅谈
2023-11-11 12:30:26
基于NET Core 的Nuget包制作、发布和运用流程解析(完整过程)
2022-03-10 01:09:29
![](https://img.aspxhome.com/file/2023/1/96401_0s.jpg)
利用java制作简单的音乐播放器
2022-01-21 11:39:32
简单了解Spring Framework5.0新特性
2021-08-06 02:21:46
java 使用idea将工程打成jar并创建成exe文件类型执行的方法详解
2022-12-07 02:49:30
![](https://img.aspxhome.com/file/2023/2/60702_0s.png)
如何通过Java实现时间轴过程解析
2022-01-02 00:31:32
![](https://img.aspxhome.com/file/2023/8/67478_0s.png)
讲解使用Docker搭建Java Web运行环境
2023-02-05 15:58:12
![](https://img.aspxhome.com/file/2023/1/80301_0s.png)
IDEA配置maven环境的详细教程(Unable to import maven project报错问题的解决)
2022-04-09 13:53:40
![](https://img.aspxhome.com/file/2023/0/71000_0s.jpg)
SpringBoot读取yaml文件操作详解
2022-09-16 09:38:31
使用java执行定时任务示例
2022-09-16 21:23:22
android连接wifi时获取广播地址代码
2022-11-20 13:08:32