Android 往 HTML 中注入JavaScript代码
显示在 WebView 中的一个 HTML 页面需要获取一段从 Android Native 传递过来的数据,比如点击 HTML 中的一个提交按钮后,这个 HTML 需要获取一段json字符串来做校验,该怎么办呢?
呐,这里有一种方式就是往 HTML 中注入一段双方约定好名称的 js 方法块,这样 HTML 在点击提交按钮时就可以先调用这段注入的 js 方法获取到 Android native 段传递的数据。
原理就是:执行 js 的 eval() 方法,往里面塞一个 function 并返回一段数据,js 就能调用这个方法拿到数据了。
如图:
在 Android 中注入:
方法就是:实现onPageFinished()方法,在加载HTML完毕的时候开始注入。
注意:一定要指定 “javascript:” (这里 function 里面的内容可以自由发挥,并不一定遵循本文上写的这种例子)
1 | String json = "{"access_token":"1","client_id":"2","open_id":"3"}"; |
这样在 WebView 中前端 HTML 就可以调用 Android Native 传递过来的数据了。