蜂窝状的WebView ontouchmove事件

我们希望听到在一个Android应用程序在web视图“ontouchmove”。 这些事件似乎过来罚款2.3,但在蜂窝,好像我们得到一个事件触发,仅此而已。 任何想法是怎么回事?

--------------解决方案-------------

在我的答案的代码示例是GWT样品,但同样要保持的JavaScript。

web视图将接管后的第一个事件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;
}
}

我希望,给了一些见解。

对了preventDefault将touchstart让事件触发,但本土滚动将被禁用。(不太理想!)没有试图解决这个问题是嵌入在数以百万计的Andr​​oid设备的垫片。 https://github.com/TNT-RoX/android-swipe-shim

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.244 (s). 10 q(s)