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     }

 

基本就是这些。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM