当前位置: 首页 > 面试题库 >

通过Android WebView中的javascript检测HTML按钮的单击

满增
2023-03-14
问题内容

我对javascript不太熟悉,但是我认为这是实现我的目标的最佳方法。如果没有,请纠正我。

我最后有一个许可证文本2按钮。所有这些都是用HTML编写的,WebView因为许可证中有一些链接。现在,我希望当用户单击中的“确定”按钮时WebView,这会触发一些我可以在Java中抓取的JavaScript或侦听器以触发Intent应用程序中的前进。(“取消”按钮的作用相反,但是如果我知道一种方法,我可以做另一种。)

这会给某人敲钟吗?欢迎任何解释或示例代码。


问题答案:

经过一番阅读,我终于自己得到了它。当您对javascript一无所知并且文档在主题上很薄时,这有点困难。
这是我的解决方案,希望对您有所帮助:

在HTML页面的末尾包含2个按钮,如下所示:

<div>
     <button type="button" id="ok" style="font-weight: 700; margin-right: 20px;" onclick="validClick();">J'accepte</button>
     <button type="button" id="no" onclick="refuseClick();">Je refuse</button>
</div>

我将点击事件发送到HTML页面顶部的javascript:

<script language="javascript">

   function validClick()
   {
      valid.performClick();
      document.getElementById("ok").value = "J'accepte";
   }
   function refuseClick()
   {
      refuse.performClick();
      document.getElementById("no").value = "Je refuse";
   }

</script>

validrefuse2个Java对象,我过的JavaScript接口传递到使用他们的方法。因此,在Java中,我创建了2个按钮(未在“活动”中真正显示,仅在此处显示其方法,并且是HTML按钮的阴影:

valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);

然后我将javascript添加到我的WebView

// Enablejavascript
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
// Add the interface to record javascript events
wv.addJavascriptInterface(valid, "valid");
wv.addJavascriptInterface(refuse, "refuse");

最后,在onClick方法中处理click事件:

@Override
public void onClick(View v) {
    if (v.equals(valid)) {
        //do Something
    } else if (v.equals(refuse)) {
        //do Something else }
}

希望这对某些人有帮助



 类似资料:
  • 我正在开发一个示例项目,名为:网球俱乐部管理,使用javascript、HTML、CSS和Bootstrap。在这个项目中,我有一个管理者。html页面,其中有两个按钮添加播放器 注意:我需要做的是,当我点击保存按钮时,它应该检查是否选择了其中一个收音机(性别:男性/女性..在这种情况下)。我还没弄明白。下面是代码文件和屏幕截图 JSIDLE链接:https://jsfiddle.net/mohi

  • 我的WPF-App的主窗口上有许多按钮。这些按钮的命令应该具有相同的实现/功能,但根据按下的按钮,函数访问的文件/路径会发生变化。如何在不使用按钮单击事件处理程序(Windows表单)的情况下检测从ViewModel单击了哪个按钮? 下面是类RelayCommand的实现: 以下是ViewModel中命令的代码:

  • 假设有几个以编程方式创建的按钮,并且有一个通用的按钮处理程序。 如何理解处理器内部哪个按钮被按下? 而不在函数调用中传递一些特殊的东西。那不行:< code > onButtonClicked(" button " I); 例如,在JavaScript中,在处理程序内部有< code>$(this),它可以立即“理解”按下了哪个按钮。 也许在颤振中也有类似的机制?我想在按钮上挂起属性(事先不知道哪

  • 用户可以选择他/她想选择的任何一个,但是当某个事件触发时,我希望将设置为set checked单选按钮,因为这是默认的checked单选按钮。 我已经尝试了这个版本(有jQuery和没有jQuery):

  • 我正在使用JavaFX构建一个calander/planner应用程序。该应用程序包括一个单一的GridPane与35(7x5)VBox的。在这些VBox中有任务按钮(在下面实现)。当我右键单击任务框时,它将把文本变成灰色,当我左键单击TsskButton时,我希望它删除按钮。我已经知道的事情。 AnchorPaneNode(扩展VBox)没有静态getChildren()方法 我无法为窗格创建单

  • 我正在为Android在Eclipse中编写一个应用程序。该应用程序不断与Web服务器中的内容进行通信。在服务器中,我有一个带有另一个按钮的html文件。我希望当我按下Android应用程序中的按钮时,html文件中的按钮被自动单击...是否可能。请建议... 我看到下面的代码(jquery): 谢啦