4

背景/コンテキスト:

私はJavaFXを使用してタッチスクリーンベースのキオスクアプリケーションを開発しています。アプリはブラウザを統合します–WebView。問題は、すべてのユーザー入力を画面キーボード(SWキーボード)で行う必要があることです。

画面キーボードで表示/非表示にできるように、フォーカスを取得/失ったHTMLテキスト入力要素のWebView/WebEngineにイベントハンドラーを登録するオプションがあると便利です。
インターネットを検索しても、このような機能は見つかりませんでした。

私の質問:

JavaFX / WebViewはこれらのケースをサポートしていますか?

この問題に取り組むとしたら、それに対するあなたのアプローチは何でしょうか?

これまでの私の解決策:

ユーザーが画面キーボード上で表示/非表示にできる小さなボタン(画面の片隅に)があります。彼らはそれを手動で行わなければならないので、それはかなり迷惑です。特に、ブラウジング(情報の消費)とテキスト入力が頻繁に変更されるサイトでは。

4

1 に答える 1

6

オンスクリーン キーボードを表示/非表示できるように、HTML テキスト入力要素がフォーカスを取得/失った場合に WebView/WebEngine にイベント ハンドラを登録するオプションがあると便利です。

これを行うための潜在的な戦略:

  1. jdk8プレビューから始めます。
  2. でアプリケーションを実行して-Dcom.sun.javafx.isEmbedded=true、仮想キーボードを有効にします。
  3. webengine.executeScript 手法を使用して、jQuery をターゲット ページに埋め込みます
  4. jQuery フォーカス ハンドラーを関連する html 要素にバインドします。
  5. jQuery フォーカス ハンドラーで、JavaScript から Java への Upcall を行います。
  6. アップコールを受信したら、JavaFX の Virtual Keyboardを使用します。
  7. ユーザーがキーボードに値を入力すると、executeScript 呼び出しが行われ、対応する html フィールドの値が設定されます。

一部の部分は少し (または完全に) 不安定になる可能性がありますが、おそらく他の部分は役に立つかもしれません。

将来、組み込みデバイスのタッチスクリーン プラットフォームで WebView がサポートされるようになった場合は、そのままで仮想キーボードでも問題なく機能すると思います。

ここに画像の説明を入力

于 2012-10-03T09:11:55.773 に答える