WebView和原生是如何通信
1、目前js有三种调用原生Android的方式:
① 和上面Js调用原生iOS(OC或Swift)方法一样,通过schema方式,Native使用shouldOverrideUrlLoading方法对url协议进行解析。这种js的调用方式与ios的一样,使用iframe来调用native代码。(原理和使用方式与上面讲的iOS拦截url的一样,建议ios和android端都采用此方式,那么前端也将方便做兼容些)
② 往webview里面注入方法,前端角度理解就是Android创建了一个方法,添加到我们js的window对象里面了,直接调用就可以触发原生的方法,如下代码:
实例代码
③ 使用prompt、console.log、alert等方式,这三个方法对js里是属于原生的,例如当我们js代码中使用alert(data)时,原生这边可以抓到data数据,然后它们进行相应的操作,一般我们使用prompt,因为这个在js代码里面使用的很少,用来和native通讯副作用较少。
2、原生Android调用javascript方法通过在android代码里使用webview的loadUrl进行调用。
安卓中的代码如上,需要被原生调用的js方法放全局。前端培训