Поймать события D-Pad / трекбола в Android Web App - PullRequest
1 голос
/ 21 августа 2011

У меня есть приложение для Android, которое в основном является оболочкой для WebView, в котором отображаются локальные файлы. WebView получает события, потому что вызывается setContentView (thewebview). Это прекрасно работает в большинстве случаев (так как мы также обрабатываем Android Webkit Browser в онлайн-версии).

Проблема в том, что я хочу добавить поддержку событий D-Pad / Trackball. Я написал соответствующий onKeyDown's, но WebView потребляет события, а не активность.

Это можно исправить двумя способами:

  1. Обрабатывать код клавиши события для D-Pad Down / Up / и т.д. в функции JavaScript onKeyDown
  2. Получите и используйте ключевые события, прежде чем веб-просмотр сможет их получить. (конечно же, все события могут быть получены, большинство просто не будет использовано)

Проблема в том, что я тоже не знаю, как это сделать. Как я могу это сделать или решить по-другому?

1 Ответ

2 голосов
/ 21 августа 2011

Просто «перехватите» нажатия клавиш в WebView, используя View.setOnKeyListener () для обработки KeyEvents.

public void setOnKeyListener (View.OnKeyListener l)

Зарегистрируйте обратный вызов, который будет вызываться при нажатии клавиши в этом представлении.

В вашем примере это будет использоваться так:

thewebview.setOnKeyListener(new OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        // do your stuff here
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...