WebView之JS调用Android方法及注意

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_40420578/article/details/102696809

今天早上测试JS调用Android方法,各种改改改大半个小时才找到问题原因,在此记录一下,希望能帮助到你。

一.xml布局

 <WebView
     android:id="@+id/wv_baseWebView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>

二.js中的方法

    function addHeaderRefresh() {
        if(IOS) {
            window.webkit.messageHandlers.addHeaderRefresh.postMessage({});
        } else if (ANDROID) {
            window.messageHandlers.addHeaderRefresh();
        }
    }

三.activity中

当时就是忘记写 mBinding.wvBaseWebView.addJavascriptInterface(this, "messageHandlers");

  mBinding.wvBaseWebView.getSettings().setJavaScriptEnabled(true);//支持JS,必写
//JS调用Android方法,messageHandlers看js中Android时window.messageHandlers.方法名(),方法名对应后面的addHeaderRefresh
  mBinding.wvBaseWebView.addJavascriptInterface(this, "messageHandlers");
  mBinding.wvBaseWebView.clearCache(true);//清除缓存

    @JavascriptInterface
    public void addHeaderRefresh() {//JS中调用Android这个方法,一定要有@JavascriptInterface
        L.e("webview", "addHeaderRefresh");
    }

猜你喜欢

转载自blog.csdn.net/weixin_40420578/article/details/102696809