【问题标题】:Touch Events in webView - JavaFXwebView 中的触摸事件 - JavaFX
【发布时间】:2014-01-20 17:50:05
【问题描述】:

我正在制作一个 JavaFX GUI 应用程序,它使用 javafx webview 类。现在我可以用 Java 显示网页了。现在我想让网页响应不同的触摸事件。我很确定我必须为不同类型的事件定制它,比如固定移动和删除就像点击一样,而拖动则是滚动。 实际上我并不完全使用触摸屏,而是类似的东西。因此,如果还有一种方法可以将坐标显式传递给触摸事件,或者制作用户定义的事件处理程序而不是使用它,然后以某种方式在 webview 中使用它。

我对 JavaFX 和一些事件处理有点陌生,所以想了解一些方向。

有没有办法传递伪触摸事件?

我正在使用TUIO,并且能够正确接收坐标等。我有 TUIO 事件函数以它们的方式响应。我可以传递自定义事件或将它们更改为触摸屏事件并将它们传递给 webview 吗?因为它们实际上不是触摸事件,但如果可以使某人像他们一样成为伪触摸事件,那可能会起作用。

【问题讨论】:

    标签: java webview event-handling javafx


    【解决方案1】:

    当您使用作为 HTML 组件的 WebView 时,您将需要处理 WebView 中的事件,而不是 JavaFX。

    您需要编写 JavaScript 事件处理程序以供您的页面使用。您可以在以下链接中找到有关 JavaScript 事件处理程序的更多信息:

    如果您实际上没有使用触摸屏,它可能会也可能不会起作用(我不知道)。

    不知道WebView是否理解触摸事件(我没试过)。


    有没有办法传递伪触摸事件?

    使用 Java 8。在 Java 8 中有多种与触摸相关的事件类,例如 TouchEventSwipeEventZoomEventRotateEvent 等。这些事件类中的每一个都有一个可以使用的构造函数在代码中构造事件。然后是棘手的一点,通常您在这里要做的是确定事件应该应用到的节点并调用node.fireEvent(myCreatedEvent)。但是,该确定步骤称为拾取,目前 JavaFX 中没有公共 API。公开采摘 API 的请求当前是 highest voted request in the JavaFX issue tracker。因此,如果没有公共 API,您将需要使用私有的未记录 API(这可能会在未来的 JavaFX 版本中消失)。如果您愿意,可以搜索 JavaFX source 以了解此类 API 的名称。

    我可以传递自定义事件或将它们更改为触摸屏事件并将它们传递给 Web 视图吗?

    我不确定,您可以尝试我上面概述的方法,它可能有效,也可能无效。

    我建议您使用目标操作系统支持的真实触摸屏,而不是使用 TUIO,这样 JavaFX 和 WebView 可能会在本质上处理您的所有触摸输入,而您无需执行任何操作。

    【讨论】:

    • 有没有办法传递psedo-touch事件?我正在使用 TUIO(tuio.org),并且我能够正确接收坐标等。我有 TUIO 事件函数以它们的方式响应。我可以传递自定义事件或将它们更改为触摸屏事件并将它们传递给 webview 吗?因为它们实际上不是触摸事件,但如果可以使某人成为像它们一样的伪触摸事件。
    • 编辑了您的问题以包含您的评论。您可以删除您的评论。通常,最好将此类后续问题作为新问题提出,但我会看看我是否可以在这种情况下回答。
    【解决方案2】:

    只是偶然发现了您的问题。不知道它是否仍然与您相关,但万一其他人发现:

    JavaFX WebView 并不真正了解 TouchEvents,但您可以处理它们。 为了将它们传递给浏览器,Java 中的 JavaScript 通过 WebEngine 中的 executeScript 传递。在 JavaScript 中,您可以使用 document.createEvent('UIEvent')

    创建一个 TouchEvent

    例如,我能够将 TouchEvents 转发到在 WebView 内运行的传单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多