前言
随着原生开发与混合开发越来越多,相信很多人在开发的时候都用过 WebView,遇到的坑也不少。我会推荐两种方法解决日常开发中遇到的问题。下面针对问题对混合开发之WebView使用总结。
一、WebView与Javascript交互
WebView与Javascript交互是双向的数据传递
1.H5网页的JS函数调用Native函数
2.Native函数调用JS函数
具体实现:
1.)AndroidMainfest.xml中加入网络权限

2.)WebView开启支持JavaScript

注意:安全漏洞
具有远程执行漏洞,攻击者可以通过暴露的JS接口,结合Java反射机制执行任意Java对象的方法,为所欲为。影响范围:Android API level 小于17 (即Android 4.2之前的系统版本)。
3.)简单的H5网页实现,主要实现actionFromNative()、actionFromNativeWithParam(String str),放在assets文件下(可以是网络地址)
试例代码如下:

4.)Native实现与JS交互函数:actionFromJs()、actionFromJsWithParam()

以上就是WebView混合开发,下面针对方法做代码简单说明:
(1)js(HTML)访问Android(Java)端代码是通过jsObj对象实现的,调用jsObj对象中的函数,如: window.jsObj.actionFromJs(),这里的jsObj就是Native中添加接口的别名
(2)Android(Java)访问js(HTML)端代码是通过loadUrl函数实现的,访问格式如:mWebView.loadUrl(“javascript:actionFromNative()”);
附github大神JS交互框如下:https://github.com/lzyzsd/JsBridge
总结:
通过以上方法基本可以解决日常开发中混合开发交互的需求,如果有更好的方法欢迎提出。
网友评论