最近用到webview内嵌H5页面的场景非常之多,个人感觉在webview与js的交互中遇到了许多的困难,也找到了一些解决方案,在此总结曾经用到的js&webview的交互方式,分享给大家,希望对大家有帮助,欢迎拍砖!
1、js 接口方式
这是最开始遇到的坑,当时android的某历史著名漏洞还没有完全暴露出来,因此曾经采用过这种方式实现js与webview的交互,具体思想是:
向WebView注册“jsInterface”的对象,然后在JS中可以访问到jsInterface这个对象,就可以调用这个对象的一些方法,最终可以调用到Java代码中,从而实现了JS与Java代码的交互。
webView.addJavascriptInterface(new Test(), "Test");
但是用这种方式实现交互当JS包含恶意代码时,app中的信息存在巨大安全风险,因此接口的方式不建议使用,故在此不做详细介绍。
2、http伪协议
这是目前js向终端传递信息最常见的方式之一,其原理是we