zoukankan      html  css  js  c++  java
  • 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     }

    基本就是这些。

  • 相关阅读:
    javascript --学习this
    seaJS
    wamp之htaccess的配置
    replace之$1、$2等
    nw.js使用
    新电脑开发环境配置
    vue-vue常用指令
    Array的splice与slice
    vue-入门体验
    Object.defineProperty
  • 原文地址:https://www.cnblogs.com/touchmore/p/7243920.html
Copyright © 2011-2022 走看看