纸上觉来终觉浅,绝知此事要躬行。 - 陆游/诗人(宋)
正文
一切基于项目WebViewStudy来说明,都是最小单元案例,可作为参考研究,本文从几个方面来讲解:
- 1、Java调用WebView里的js代码(传递参数)
- 2、WebView里的js代码调用Java本地方法(传递参数)
- 3、外部注入js代码
- 4、WebView长按事件
相关JS代码:
|
|
Java调用WebView里的js代码(传递参数)
// 告诉WebView启用JavaScript执行。默认的是false。
ws.setJavaScriptEnabled(true);
1、如果点击调用就直接执行就好:
2、如果是显示后就调用,注意放在html显示完成之后
MyWebViewClient.java
|
|
WebView里的js代码调用Java本地方法(传递参数)
这里有一个js点击方法:
实现与js交互接口:
这里的”injectedObject”对应js里的”window.injectedObject.startFunction()”,其中MyJavascriptInterface.java:
且对标里面的两个方法:
外部注入js代码
有时候我们得到一个网页,这个网页并不是我们订制的,里面没有我们调用的js代码,这时候我们可在前端直接注入js的。
比如 网页里面有图片,我们点击图片想要查看图片和保存图片到本地,这时候网页并没有实现这个js方法供我们调用,但是我们可以注入js代码,来实现这个需求。
在html加载完成之后,我们调用这段js:
这时候再看MyJavascriptInterface.java里的imageClick方法:
src即为图片链接,可以作为显示和下载用。
WebView长按事件
|
|