1

我有一个Android应用程序,它主要是围绕显示本地文件的WebView进行封装。 因为调用了setContentView(thewebview),所以WebView获取事件。这在大多数情况下都可以正常工作(因为我们还在联机版本中处理Android Webkit Browser)。在Android Web应用程序中捕获D-Pad /轨迹球事件

问题是我想添加对D-Pad/Trackball事件的支持。我已经写了适当的onKeyDown,但是WebView正在消耗事件,而不是活动。

这个问题可以有两种方式:

  1. 处理该事件的键码的d-垫下/上/等。在javascript onKeyDown函数中
  2. 在webview可以获取它们之前获取并使用appriopriate关键事件。 (当然也可以得到所有事件,大多数将不会被消费)

问题是我不知道该怎么做。我怎么能做到这一点或以不同的方式解决这个问题?

回答

2

只需使用View.setOnKeyListener()来处理KeyEvent,即可“捕捉”WebView上的按键。

公共无效setOnKeyListener(View.OnKeyListener升)

注册回调当钥匙在此视图中被按压到被调用。

在你的榜样,将像这样使用:

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