如何在android webview中注入javascript接口

How to inject javascript interface in android webview?

本文关键字:注入 javascript 接口 webview android      更新时间:2023-09-26

我正在android的webview中加载一个页面。该页面有一个元素(按钮)与以下代码,注意:-这是一个第三方网站,我无法控制这里显示的代码:-

    <i class="icon close cardClose" role="button" title="Close recently linked screen" tabindex="0"></i>

我想添加一个javascript接口,如下面的方法:-

private class myWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            view.addJavascriptInterface(new Object()
            {
                @JavascriptInterface
                public void performClick() throws Exception
                {
                    Toast.makeText(Activity.this, "Login clicked", Toast.LENGTH_LONG).show();
                }
            }, "login");
            return true;
        }
    }

mWebView.setWebViewClient(new myWebViewClient());

但是问题是webview源代码说:-

* @param object the Java object to inject into this WebView's JavaScript
     *               context. Null values are ignored.
     * @param name the name used to expose the object in JavaScript
     */
    public void addJavascriptInterface(Object object, String name) {
        checkThread();
        mProvider.addJavascriptInterface(object, name);
    }

按钮似乎没有名为"name"的属性。

我推荐你这样使用

view.addJavascriptInterface(new JavaScriptInterfaceNew(getActivity(), this), "Android_Normal_Test");

这里JavaScriptInterfaceNew是你的类名Android_Normal_Test是你的对象当你需要将一些事件从webview传递到activity class