防止Android触摸事件延迟

Preventing lag on touch events in Android

本文关键字:延迟 事件 触摸 Android 防止      更新时间:2023-09-26

我正在构建一个基于phonegap的Android/iOS应用程序。该应用程序应该检测用户的滑动。

在Android上,当检测到手势时,应用程序在执行我的代码之前始终显示大约200ms的延迟

通过阅读,我了解到这种延迟可能是由Android区分滑动和正常点击的方式造成的。如果你在触摸后200毫秒内调用e.preventDefault(), WebKit会让你把它当作滑动来处理。

问题:
是否有一种方法可以完全消除这种延迟,并强制WebKit假设事件是滑动,从而消除延迟?

实际上,延迟大约是300ms,在这篇文章[1]中,给出了浏览器oem实现这种行为的原因。有一个叫做fastclick[2]的库可以用来防止这种情况。就我个人而言,我正在使用聚合物手势,它具有更广泛的范围,但从整体上解决了检测手势防止300毫秒延迟的问题。

[1] http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away

[2] https://github.com/ftlabs/fastclick

[3] https://github.com/Polymer/polymer-gestures