WebView 与 JavaScript 交互常用方法

来源:互联网 发布:北京科技大学网络教学 编辑:程序博客网 时间:2024/06/06 17:17

现在的纯原生的 APP 很少见了,原生 App 中嵌者网页原生与网页中 JavaScript 的交互几乎无法避免,毕竟在自己的应用中嵌入网页不只是想让应用当个浏览器用。

Android 原生中加载网页的控件是 WebView,因此要想原生与 JavaScript 交互也一样必须通过 WebView 来实现。


相关类和常用方法

WebView

常用方法:


WebSetting

常用方法:

WebView 与 JavaScript 交互常用方法

WebViewClient

常用方法:

WebView 与 JavaScript 交互常用方法

webView 默认情况下是不会加载 https 请求的,页面将显示空白,如果加载 https 页面需要进行如下设置:

WebView 与 JavaScript 交互常用方法

WebChromeClient

常用方法:

WebView 与 JavaScript 交互常用方法

JS 调用原生方法

JS 调用源生的方法时该方法必须要加上 @JavascriptInterface 注解,我们可以定义一个类或者接口来单独存放用于 JS 调用的方法,这里我以接口为例。

接口中提供一个 getUrl(String url) 方法用于提供给 JS 调用,传递一个 String 类型的值给源生方法:

WebView 与 JavaScript 交互常用方法

WebView 与 JavaScript 交互常用方法

WebView 与 JavaScript 交互常用方法

原生调用 JS

加载 JS 可以直接 webView.load() 加载完整的 JS 代码也可以在自己加的 head 节点引入 JS 文件然后 webView 直接 load 其中的方法, PandaEye 中使用的是第二种方法:

在拼装 HTML 时在 head 中引入放在 asset 文件夹中的 js 文件

WebView 与 JavaScript 交互常用方法

imageClick.js 中的内容如下:

WebView 与 JavaScript 交互常用方法

然后在 WebChromeClient 当加载进度达到 100% 后去调用 JS 文件中的 initClick() 方法,为每一张图片设置点击事件:

WebView 与 JavaScript 交互常用方法

web前端/JavaScript/html5学习群:575308719
关注公众号→‘学习web前端’跟大佬一起学前端!


原创粉丝点击