Android中WebView与Java代码的互相调用

Android手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫作 WebView 组件。使用该组件来加载JavaScript页面。javascript

初始设置html

// 支持JavaScript接口,WebViewInterface为自定义接口类
  mWebView.addJavascriptInterface(new WebViewInterface(this), "Android");
  WebSettings mWebSettings = mWebView.getSettings();
  // 设置支持JavaScript
  mWebSettings.setJavaScriptEnabled(true);

自定义接口类,处理JavaScript的调用事件java

public class WebViewInterface { 
 
   

    private OnWebViewClickListener mListener;

    public WebViewInterface(OnWebViewClickListener listener) {
        this.mListener = listener;
    }

    @JavascriptInterface
    public void callback(boolean check) {
        if(mListener != null){
            mListener.onCallback(check);
        }
    }

    @JavascriptInterface
    public String getString() {
        return "Hello WebView !";
    }

    // 定义回调接口
    public interface OnWebViewClickListener { 
 
   
        void onCallback(boolean check);
    }
}

1.JavaScript调用Java方法
定义给JavaScript调用的方法web

@JavascriptInterface
    public String getString(){
        return "Hello WebView !";
    }

在JavaScript中调用定义的方法浏览器

<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <title>Java与JavaScript交互</title>
</head>
<body>
    <a href="javascript:void(0)" onClick="getMessage()">点击弹出</a>
    <script> function getMessage(){ 
     <!--getString()为定义的Java方法--> alert(Android.getString()); } </script>
</body>
</html>

JavaScript调用Java方法

2.Java调用JavaScript方法svg

mWebView.loadUrl("javascript:showDialog(\"" + "Hello WebView !" + "\")");
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Java与JavaScript交互</title>
</head>
<body>
<script> function showDialog(message) { 
     alert(message); } </script>
</body>
</html>

Java调用JavaScript方法

本文分享 CSDN - 秦川小将。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。性能