【问题标题】:How to get click event on a html button from webview? [duplicate]如何从 webview 获取 html 按钮的点击事件? [复制]
【发布时间】:2015-05-07 07:27:49
【问题描述】:

对于你们中的许多人来说,这个问题可能听起来很基础。但请看看我的实际问题。我在我的 android 应用程序中动态设置我的 WebView 的内容。 而且我可以在其中设置文本而没有任何问题,但我的问题是我需要在我的 WebView 中动态添加一些按钮,如下所示

for (Address address : (List<Address>) childDataList.get(3)) {

    if (!address.getName().equalsIgnoreCase("")) {
        text.append("<b>").append(address.getName()).append("</b>");
    }


    /*  dynamic button in html */
   //text.append("<br>").append("<a href=\"http://www.google.com\" target=\"_parent\"><button>Navigation </button></a>");   // this is working
   text.append("<br>").append("<button type=\"button\" onclick=\"ok.performClick();\">Navigation</button>");    // not able to make it work
   text.append("<br><br>");

}

我正在使用以下代码调用此方法:

WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
wv.addJavascriptInterface(new Object()
{
  public void performClick()
  {
    //Print Toast
  }
}, "ok");

但是performClick() 方法没有调用按钮点击,而它在直接 url 的情况下可以完美地工作。因此,如果您有任何建议或链接,请提供给我。

我关注了 android html button onclick event 和 webviews html button click detection in activityjava code 和 detect click on html button through javascript in android webview 链接,但我无法完成我的要求。

我正在以编程方式设置我的 webview 文本 Android 代码而不是 Javascript。因此,请在将其标记为重复之前查看我的问题,或者如果我遗漏了什么,请指导我。

【问题讨论】:

    标签: java android html android-webview dom-events


    【解决方案1】:

    您需要在 Java 代码中使用 @JavascriptInterface (doc) 注释 performClick:

    wv.addJavascriptInterface(new Object()
    {
        @JavascriptInterface
        public void performClick()
        {
            //Print Toast
        }
    }, "ok");
    

    另外,请确保您在加载页面之前调用addJavascriptInterface。

    【讨论】:

    • 我有一个疑问,如果我将 performClick 更改为任何其他文本,performClick 的名称是否必须在 Java 和 javascript 中都匹配,点击是否仍然有效?
    • 是的,您在 JavaScript 中的调用必须使用 Java 函数的名称。如果重命名它,则必须相应地更改 JavaScript 代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    相关资源
    最近更新 更多