Я собираюсь ответить на мой вопрос, потому что нашел решение.
Прежде всего я добавил слушатель событий для всех входных тегов на веб-странице, после того, как загружается страница:
private void addEventListenersToDOM() {
webview.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> ov, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
JSObject win = (JSObject) webview.getEngine().executeScript("window");
win.setMember("javaFXVirtualKeyboard", new JavaFXVirtualKeyboard());
String script =
"var inputsList = document.getElementsByTagName('input');"
+ "for (var index = 0; index < inputsList.length; ++index) { "
+ "inputsList[index].addEventListener('focus', function() { javaFXVirtualKeyboard.show() }, false); "
+ "inputsList[index].addEventListener('focusout', function() { javaFXVirtualKeyboard.hide() }, false); "
+ "}";
webview.getEngine().executeScript(script);
}
}
});
}
И ключевой момент, как я запуская клавиатуры отображение и скрытие:
public class JavaFXVirtualKeyboard {
public void show() {
FXVK.init(webview);
FXVK.attach(webview);
}
public void hide() {
FXVK.detach();
}
}
Одно замечание: класс FXVK не API, поэтому мы получаем предупреждение во всех случаях, но оно работает без ошибок.
обескуражен доступа: Тип 'FXVK' не API (ограничение на требуемую библиотеку 'C: \ Program Files \ Java \ jre1.8.0_91 \ Lib \ вн \ jfxrt.jar')