Android 开发中 Java 与 JS 通过 WebView 交互

229 阅读1分钟

Android 开发中集成一个 WebView 来显示网页非常普遍,有时需要处 理Java 与 JS 代码的交互。

Android 中 Java 与 JS 交互分两种:

  • Java 调用 JS 代码
  • JS 调用 Java 代码

Java 调用 JS:

  1. 通过 WebView 的 loadUrl 方法
    mWebView.loadUrl("javascript:callJS()");

这种方法无法获取返回值

  1. 通过 WebView 的 evaluateJavaScript 方法
    mWebView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String value) {
            //此处为 js 返回的结果
        }
    });

这种方法可以获取 JS 的返回值,但只能在 4.4 以上版本使用。 两种方法都必须在 WebView 所在线程调用

JS 调用 Java

  1. addJavaInterface 方法 该方法仅适合在 Android4.2 以上版本使用,其他版本存在安全漏洞
  2. 通过 WebView 的 shouldOverrideUrlLoading 方法
  3. 通过 WebView 的 onJsAlert()、onJsConfirm()、onJsPrompt() 方法回调拦截