4

背景/上下文:

我正在使用 JavaFX 开发基于触摸屏的信息亭应用程序。该应用程序集成了浏览器——WebView。问题是所有用户输入都必须通过屏幕键盘(SW键盘)进行

如果可以选择在 WebView/WebEngine 上为任何获得/失去焦点的 HTML 文本输入元素注册事件处理程序,这样我就可以在屏幕键盘上显示/隐藏。
即使我搜索了互联网,我也没有找到这种功能。

我的问题:

JavaFX / WebView 是否为这些情况提供任何支持?

如果你要解决这个问题,你的方法是什么?

到目前为止我的解决方案:

我有一个小按钮(在屏幕的一个角落),允许用户显示/隐藏屏幕键盘。由于他们必须手动执行此操作,因此非常烦人。特别是在浏览(消费信息)和文本输入经常变化的网站上。

4

1 回答 1

6

如果可以选择在 WebView/WebEngine 上为任何获得/失去焦点的 HTML 文本输入元素注册事件处理程序,这样我就可以在屏幕键盘上显示/隐藏。

这样做的潜在策略:

  1. jdk8 预览开始。
  2. 运行应用程序-Dcom.sun.javafx.isEmbedded=true以启用虚拟键盘。
  3. 使用 webengine.executeScript 技术将 jQuery 嵌入到目标页面中。
  4. 将jQuery 焦点处理程序绑定到相关的 html 元素。
  5. 在 jQuery 焦点处理程序中进行从 JavaScript 到 Java 的 Upcall
  6. 收到 upcall 后,请使用JavaFX 的 Virtual Keyboard
  7. 当用户在键盘中输入值时,调用 executeScript 来设置相应 html 字段的值。

有些部分可能会有点(或完全)片状,但也许其他部分可能对您有用。

将来,如果嵌入式设备的触摸屏平台支持 WebView,我猜它开箱即用,它可以很好地与虚拟键盘配合使用。

在此处输入图像描述

于 2012-10-03T09:11:55.773 回答