項目中常常用到WebView與H5的交互,一個是H5調本地方法,一個是本地調H5方法,在此記錄一下。javascript
首先,啓用JS支持java
1 //啓用js支持 2 webSettings.setJavaScriptEnabled(true);
1. JS調用Native方法android
1 // JS調用Native方法 2 mWebView.addJavascriptInterface(new JsInterface(), "android"); // "android"是js那邊調用Java方法時的一個「句柄」或者引用,跟h5約定好,能夠寫成別的。android.openUrlByBrowser()
1 public class JsInterface { 2 @JavascriptInterface 3 public void backpage() { // 無返回值,無參 4 finish(); 5 } 6 7 @JavascriptInterface 8 public void openUrlByBrowser(String url) { // 無返回值,有參 9 openBrowser(url); 10 } 11 12 @JavascriptInterface 13 public boolean haszhifubao() { // 有返回值 14 return AppPackageChecked.isExist(WebShowActivity.this, "com.eg.android.AlipayGphone"); 15 } 16 17 }
2. Native調用JS方法web
1 private void pauseVideo() { 2 mWebView.loadUrl("javascript:pauseVideo()"); // pauseVideo()是H5那邊定義好的 3 }
使用時Android直接調用pauseVideo()就行了ide
1 @Override 2 public void onClick(View v) { 3 switch (v.getId()) { 4 case R.id.left_layout: 5 pauseVideo(); 6 finish(); 7 break; 8 } 9 }
基本就是這些。this