Android 捕获人行横道Cordova webview触摸事件

Android 捕获人行横道Cordova webview触摸事件,android,cordova,webview,crosswalk-runtime,Android,Cordova,Webview,Crosswalk Runtime,我正在使用和构建一个基于web的Android应用程序 我试图在我的应用程序的主要活动中捕获XWalk webview上发生的任何触摸事件,但到目前为止,我尝试的所有操作都无法在调试会话期间触发触摸事件 具体地说,我正在尝试捕获web视图上任意位置的三个手指滑动,以便显示设置窗格 以下是我到目前为止在主要活动中得到的信息: public class MyActivity extends CordovaActivity { @Override public void onCreat

我正在使用和构建一个基于web的Android应用程序 我试图在我的应用程序的主要活动中捕获XWalk webview上发生的任何触摸事件,但到目前为止,我尝试的所有操作都无法在调试会话期间触发触摸事件

具体地说,我正在尝试捕获web视图上任意位置的三个手指滑动,以便显示设置窗格

以下是我到目前为止在主要活动中得到的信息:

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
类中定义的
dispatchTouchEvent
方法成功地实现了这一点。这是捕获触摸事件并将其委托给我的cordova webview,而无需启动我的
onTouchEvent

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    int action = ev.getAction();
    // handle three finger swipe

    super.dispatchTouchEvent(ev);
}

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

您能帮我检测滚动事件吗。谢谢您的回答。仅供参考,dispatchTouchEvent(ev)后您缺少分号:)