javascript - 防止 Android 中触摸事件出现延迟

标签 javascript android cordova touch delay

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

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

通过阅读,我了解到这种延迟可能是由 Android 区分滑动和普通点击的方式造成的。如果您在触摸后 200 毫秒之前调用 e.preventDefault(),WebKit 会让您将其视为滑动操作。

问题:
有没有办法完全消除这种延迟并强制 WebKit 假设该事件是滑动,从而消除延迟?

最佳答案

实际上,延迟约为 300 毫秒,本文 [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

关于javascript - 防止 Android 中触摸事件出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553426/

相关文章:

android - 从 Activity 中清除 Intent 标志,以便它恢复其原始启动行为

javascript - Phonegap 简单 javascript 未运行(onClick 问题?) - Android 和 iOS

android - 我可以在 WebView 中打开相机吗?

jquery - 如何使用 HTML5、JQuery 移动设备中的链接在同一页面内进行内部导航?

Javascript计数计时器修改

javascript - react native : Function called twice automatically inside FlatList

javascript - npx babel 没有从 babel.config.js 读取配置

android - 在 Android Media Player 中重播音乐的问题

javascript - 如何在 Angular Js 中调用 100 多种数据产品 - 需要一些动态数据驱动的解决方案

android - TabLayout 多行时文本大小发生变化