在Android Web App中捕捉D-Pad / Trackball事件

时间:2011-08-21 11:53:45

标签: android events javascript-events event-handling web-applications

我有一个Android应用程序,它主要是一个显示本地文件的WebView包装器。 WebView获取事件,因为调用了setContentView(thewebview)。这在大多数时候都很好用(因为我们也在在线版本中处理Android Webkit Browser)。

问题是我想添加对D-Pad / Trackball事件的支持。我已经编写了相应的onKeyDown,但WebView正在使用事件,而不是活动。

这可以通过两种方式解决:

  1. 处理D-Pad Down / Up /等的事件键码。在javascript onKeyDown函数
  2. 在webview获取之前获取并使用适当的关键事件。 (当然也可以获得所有事件,大部分都不会消耗掉)
  3. 问题是我不知道该怎么办。我怎么能这样做或以不同的方式解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用View.setOnKeyListener()处理KeyEvents,只需“捕获”WebView上的按键。

  

public void setOnKeyListener (View.OnKeyListener l)

     

注册在此视图中按下某个键时要调用的回调。

在您的示例中将使用如下:

thewebview.setOnKeyListener(new OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        // do your stuff here
    }
});