最近做的项目中有android和h5交互部分 总结如下
一、android调用h5方法
在Android端主要使用WebView来进行网页的加载,设置属性
// 获取WebSetting对象
WebSettings webSettings = webview.getSettings();
// 设置支持javascript
webSettings.setJavaScriptEnabled(true);
// 将Android里面定义的类对象AndroidJs暴露给javascript
webview.addJavascriptInterface(new AndroidJs(MainActivity.this), "AndroidJs");
调用方式:其中doAlert为H5页面的方法
webview.loadUrl("javascript:doAlert()");
二、h5调用android方法
h5中不同地方可能会调用window.external.action('/privateProtocol')和window.external.action('/userProtocol')
android中:
mWebView.loadUrl("*******");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "external");
mWebView.setWebViewClient(new WebViewClient());
@JavascriptInterface
public void action(String value) {
switch (value) {
case "/userProtocol":
doTask1();
break;
case "/privateProtocol":
doTask2();
break;
default:
break;
}
}