如何从webview获取html按钮上的click事件?

时间:2015-05-07 07:27:50

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

对于你们中的许多人来说,这个问题听起来很基本。但请看看我的实际问题。我在我的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 code以及detect click on html button through javascript in android webview链接,但我无法完成我的要求。

我在android代码中以编程方式设置我的webview文本而不是javascript。因此,请在将其标记为重复之前查看我的问题,或者如果我遗漏了某些内容,请指导我。

1 个答案:

答案 0 :(得分:0)

您需要在Java代码中使用performClickdoc)注释@JavascriptInterface

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

此外,请确保在加载页面之前致电addJavascriptInterface