Примеры кода в моем ответе являются примерами gwt, но то же самое должно относиться и к JavaScript.
WebView примет событие после первого onTouchMove
в основном для того, чтобы разрешить прокрутку. Вы можете предотвратить это, позвонив по номеру
event.preventDefault();
Я не знаю, почему это особенно характерно для Сота, но если вы поймаете первое событие onTouchMove
и в этот момент решите, хотите ли вы вступить во владение, позвонив по номеру preventDefault()
, вы сможете справиться со многими случаями. , В качестве примера я хотел реализовать горизонтальное перелистывание, но при этом работать с основными функциями (такими как вертикальная прокрутка, ссылки и т. Д.).
@Override
public void onBrowserEvent(Event event) {
switch (event.getTypeInt()) {
case Event.ONTOUCHSTART:
startPoint = new Point(event.getChangedTouches().get(0).getClientX(), event.getChangedTouches().get(0).getClientY());
break;
case Event.ONTOUCHMOVE:
endPoint = new Point(event.getChangedTouches().get(0).getClientX(), event.getChangedTouches().get(0).getClientY());
double dx = startPoint.getX() - endPoint.getX();
double dy = startPoint.getY() - endPoint.getY();
if (Math.abs(dx) > SWIPE_X_MIN) {
if (Math.abs(dy) < SWIPE_Y_MAX) {
// Decided it really is a horizontal swipe
event.preventDefault();
if (dx < 0) {
Window.alert("swiped right");
} else {
Window.alert("swiped left");
}
}
}
break;
}
}
Надеюсь, это даст некоторое понимание.