Android中WebView与H5的交互,Native与JS方法互调

项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下。

首先,启用JS支持

1         //启用js支持
2         webSettings.setJavaScriptEnabled(true);

 

1. JS调用Native方法

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方法

1     private void pauseVideo() {
2         mWebView.loadUrl("javascript:pauseVideo()");  // pauseVideo()是H5那边定义好的
3     }

使用时Android直接调用pauseVideo()就好了

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     }

 

基本就是这些。

 

posted @ 2017-07-27 11:28  touchmore  阅读(4584)  评论(0编辑  收藏  举报