JavaFX WebView / WebEngine自动为每个文本输入显示屏幕键盘

时间:2012-10-03 08:17:24

标签: webview keyboard javafx touchscreen

背景/上下文:

我正在使用JavaFX开发基于触摸屏的自助服务终端应用程序。该应用程序集成了浏览器--WebView。问题是所有用户输入都必须通过屏幕键盘(SW键盘)

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

我的问题:

JavaFX / WebView是否为这些案例提供了任何支持?

如果你要解决这个问题,你会采取什么方法?

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

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

1 个答案:

答案 0 :(得分:5)

  

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

这样做的潜在策略:

  1. jdk8 preview开始。
  2. 使用-Dcom.sun.javafx.isEmbedded=true运行应用程序以启用虚拟键盘。
  3. 使用webengine.executeScript技术embed jQuery into the target page
  4. jQuery focus handler绑定到相关的html元素。
  5. 在jQuery焦点处理程序中创建Upcall from JavaScript to Java
  6. 收到上传后,请使用JavaFX's Virtual Keyboard
  7. 当用户在键盘中输入值时,请执行executeScript调用以设置相应html字段的值。
  8. 某些部分可能会有点(或完全)片状,但也许其他部分可能对您有用。

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

    enter image description here