MotionEvent状态
- webview 处理Touch事件时,使用了MotionEvent.java中定义的几种Touch状态,其实就是Android中定义的Touch状态。
- 之后,webview将Touch数据整理好,利用EventForwarder(Java),通过JNI,穿给EventForwarder(Native层),交给底层Chromium处理。
- 关于MotionEvent几种Touch状态如下:
public static final int ACTION_DOWN = 0;
public static final int ACTION_UP = 1;
public static final int ACTION_MOVE = 2;
public static final int ACTION_CANCEL = 3;
public static final int ACTION_OUTSIDE = 4;
public static final int ACTION_POINTER_DOWN = 5;
public static final int ACTION_POINTER_UP = 6;
- Android中利用点击时间的间隔,来判断长按、双击等状态(参考,ViewConfiguration.java)。
- WebView的touch处理,和Android大体相同。只是在传给Chromium时,做了一下转换。关于转换这部分,可以参考 EventForwarder.java中sendTouchEvent函数。