【问题标题】: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 eventwebviews html button click detection in activityjava codedetect 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
    相关资源
    最近更新 更多