捕获 Crosswalk Cordova webview 触摸事件

Capturing Crosswalk Cordova webview touch events

我正在使用 Crosswalk Cordova framework 构建基于网络的 Android 应用程序,并且 我正在尝试捕获在我的应用程序的主 activity 内的 XWalk webview 上发生的任何触摸事件,但到目前为止我已经尝试过的所有操作都无法在调试会话期间触发触摸事件。

具体来说,我正在尝试捕捉三指向下轻扫 Web 视图中的任意位置,以便显示设置窗格。

这是我目前的主要内容 activity:

public class MyActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        super.loadUrl(Config.getStartUrl());

        // appView is the main xwalk webview setup in parent
        appView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                // Check for three finger swipe... 
            }
        });
    }

    ....
}

我意识到我可能可以通过 javascript 事件捕获触摸事件,然后可以通过 cordova api 调用触发操作,但我更愿意在 android应用

我也试过用onTouchEvent方法捕捉触摸事件

public boolean onTouchEvent(View view, MotionEvent event) {
    int action = event.getAction();
    // Check for three finger swipe... 
}

但是这个方法永远不会被触发。

如有任何帮助或想法,我们将不胜感激。

我通过重写 Activity class 中定义的 dispatchTouchEvent 方法设法使它工作。这是在不触发我的 onTouchEvent.

的情况下捕获触摸事件并将它们委托给我的 cordova webview
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    int action = ev.getAction();
    // handle three finger swipe

    super.dispatchTouchEvent(ev);
}

我希望这可以帮助面临这个问题的人:)