本文主要介绍利用JavascriptInterface实现Android和H5界面的交互。
因为是Android的技术分享,js具体代码就不贴了,只要知道前端给的Consume.getWebId("invest")
这个方法就够了。
下面开始介绍Android代码:
- 新建一个Operator类
private Activity activity;
public H5Operator(Activity activity) {
this.activity = activity;
}
@JavascriptInterface
public void getWebId(final String message){
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
if("invest".equals(message)){
//在这里执行你想要的操作;
}
}
});
}
代码说明:getWebId
必须要和前端的一致,"invest".equals(message)
匹配收到的message,然后执行android自己的操作,比如跳转之类的。
- WebViewActivity界面
//核心方法代码
@SuppressLint({"NewApi", "SetJavaScriptEnabled"})
private void initializeWebView() {
webView.addJavascriptInterface(new H5Operator(WebViewActivity.this),
"Consume");
try {
String userId = (String) SPutils.get(this, "userId", "0");
String url = "访问的界面";
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setBuiltInZoomControls(false);
webSettings.setSupportZoom(false);
webSettings.setDisplayZoomControls(false);
this.webView.loadUrl(url);
} catch (Exception e) {
e.printStackTrace();
}
}
//在onCreate方法中调用
this.initializeWebView();
代码说明:@SuppressLint({"NewApi", "SetJavaScriptEnabled"})
NewApi
作用是屏蔽android lint错误,SetJavaScriptEnabled
开启Javascript支持。
webView.addJavascriptInterface(new H5Operator(H5Operator.this), "Consume");
这句代码中需要注意的是"Consume"必须和前端给的方法一致。
以上,就是Android和H5交互的方法,很简单,其他延伸的知识就不在这赘述了。详细的分享这篇讲挺多的,大家可以参考下。