Работает с использованием Event.addNativePreviewHandler(NativePreviewHandler handler)
Но есть несколько вещей, которые следует учитывать:
- Обработчик не ограничен виджетом. Это глобально для вашего приложения. Если вы меняете виджеты, вам, возможно, придется зарегистрировать и отменить регистрацию вручную.
- Существуют различия браузера с событиями клавиатуры. Некоторые браузеры отправляют keyDown- и keyPress-Events, другие - просто keyDown-Events.
Чтобы обойти второй вопрос, вы можете получить имя браузера, используя этот код:
private static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;