本文主要介紹利用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交互的方法,很簡單,其他延伸的知識就不在這贅述了。詳細的分享這篇講挺多的,大家可以參考下。