我问一下Phonegap应用程序是否能够识别Javascript中的swipeLeft和SwipeRight相关事件。
答案 0 :(得分:5)
与普通移动网站相比,Phonegap不再为您提供触摸事件。即它只是包装UIWebView(在iOS上)或其他平台上的等价物。
触摸移动浏览器中的事件包括touchstart
,touchend
,touchmove
等。
没有任何花哨的滑动事件,或双击事件,或任何类似移动浏览器中本机实现的事件。
但是,您可以将javascript与库存touchstart
,touchend
事件等结合使用来模拟那些更复杂的事件。
幸运的是,您不需要自己编写这些事件,因为几乎每个移动框架都为您完成了这些。其他人提到了一些处理触摸事件的库。
我自己,我倾向于使用具有swipeleft
和swiperight
事件的jQuery Mobile,以及其他事件。
http://jquerymobile.com/demos/1.2.0/docs/api/events.html
如果您不想,您甚至不必使用完整的jQuery Mobile框架。如果需要,您可以包括他们的触摸事件处理程序。
答案 1 :(得分:4)
我们使用quo.js。它是处理多点触摸事件等的轻量级框架。
答案 2 :(得分:2)
使用this一个在ios和android中使用phonegap。
$("#test").swipe( {
click:function(event, target) {
log("click from callback");
},
swipe:function(event, direction, distance, duration, fingerCount) {
log("swipe from callback");
},
swipeLeft:function(event, distance, duration, fingerCount) {
log("swipeLeft from callback");
},
swipeRight:function(event, distance, duration, fingerCount) {
log("swipeRight from callback");
},
swipeUp:function(event, distance, duration, fingerCount) {
log("swipeUp from callback");
},
swipeDown:function(event, distance, duration, fingerCount) {
log("swipeDown from callback");
},
swipeStatus:function(event, phase, direction, distance, duration, fingers) {
log("swipeStatus from callback");
},
pinchIn:function(event, direction, distance, duration, fingerCount, pinchZoom) {
log("pinchIn from callback");
},
pinchOut:function(event, direction, distance, duration, fingerCount, pinchZoom) {
log("pinchOut from callback");
},
pinchStatus:function(event, phase, direction, distance , duration , fingerCount, pinchZoom) {
log("pinchStatus from callback");
},
fingers:$.fn.swipe.fingers.ALL
});
答案 3 :(得分:0)
Zepto为swipeLeft和swipeRight以及其他许多人提供触摸事件:http://zeptojs.com/#Touch%20events
答案 4 :(得分:0)
用于滑动功能的优秀jquery插件TouchSwipe-Jquery-Plugin