Android&H5互调

来源:互联网 发布:淘宝优惠券赚佣金算的 编辑:程序博客网 时间:2024/05/17 22:49

这里写图片描述

初始化WebView

        WebSettings webSettings = webView.getSettings();        //支持js        webSettings.setJavaScriptEnabled(true);        //支持缩放        webSettings.setBuiltInZoomControls(true);        //设置 链接不跳转到浏览器        webView.setWebViewClient(new WebViewClient());        //设置支持js调用java        webView.addJavascriptInterface(new AndroidAndJsInterface(),"Android");        //加载html        webView.loadUrl("file:///android_asset/JavaAndJs.html");
  • 其中JavaAndJs.html放在assets文件夹中(也可以直接使用网络资源)

java调用javascript

  • html带码中
    在调用javaCallJs后 content中的内容将发生改变
<html><head>    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">    <script type="text/javascript">    function javaCallJs(s){         document.getElementById("content").innerHTML = s;    }    </script></head><body><div align="left" id="content"></div></body></html>
  • java带码中
webView.loadUrl("javascript:javaCallJs("+"'"+"java调用js"+"'"+")");

javascript调用java

  • java带码中
    定义一个内部类 提供调用接口
 class AndroidAndJsInterface{    @JavascriptInterface    public void showToast(){        Toast.makeText(MainActivity.this, "js调用java", Toast.LENGTH_SHORT).show();    }}
 //设置支持js调用java webView.addJavascriptInterface(new AndroidAndJsInterface(),"Android");
  • html中点击按钮调用java中方法
<body><div align="left" id="content"></div><input type="button" value="点击Android被调用" onclick="window.Android.showToast()"/></body>

https://github.com/REIGE/JavaAndJsDemo