现代的移动应用几乎都是原生和h5混合开放,这样既保证了用户体验,又使得APP在一定程度上具备动态更新能力,同时有利于实现跨平台开发,减少人力成本。混合开发自然避免不了app与h5的交互。今天我们就来谈谈android 和 h5 的交互。
1.使用原生的WebView
h5 调用 android
webView.getSetting().setJavaScriptEnabled(true);//让webView支持js
webView.addJavaScriptInterface(new JSInterface(),"android"); //将JSInterface对象暴露给js,在js中可以通过 window.android访问到这个对象,其中JSInterface为内部类
public class JSInterface{
/**
* 提供给h5调用的方法必须是有@JavascriptInterface注解标注的,public修饰的方法
* @ data h5传给原生app的数据
*/
@JavascriptInterface
public void webToApp(String data){
}
}
h5调用window.android.webToApp就能访问原生的webToApp方法了。
webView 调用 h5 的方法
webView.loadUrl(“javascript:”+JS方法名&