gpt4 book ai didi

javascript - 防止 Android Cordova 应用程序中的 TouchCancel 事件

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:29 25 4
gpt4 key购买 nike

我正在开发的一个 Android 应用依赖于来自用户的一系列可能很长的触摸移动事件。其中一些 touchmove 事件不会触发太多计算,但有些会。看来我被咬了this feature of the Android WebKit 如果 touchmove 处理程序未在 ~200 毫秒内返回,将触发 touchcancel 事件。根据this response on that bug report

1: for mobile-optimized sites (those with width=device-width viewports), you can rely on always getting uninterrupted touch events. So touch-heavy sites should be using a mobile viewport to indicate they're designed to work well on mobile.

不幸的是,这似乎对我不起作用。应用程序的受影响部分是具有以下视口(viewport)设置的 HTML 页面:

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, 
minimum-scale=1, width=device-width, target-densitydpi=device-dpi" />

通过该设置,当 touchmove 事件花费的时间过长时,我看到 touchcancel 事件被触发。我试图使 touchmove 事件更快,但提高速度使这个问题不会经常出现并不是万无一失的解决方案。有什么方法可以防止 touchcancel 事件,或者至少可以解决它们?

非常感谢!

最佳答案

如果其他人遇到此问题,here's a small jQuery extension这解释了如何处理 pointercanceltouchcancel 事件。

基本上,尝试使用指针事件,您将能够通过简单地使用 touch-action CSS 属性来防止pointercancel none 的值。

如果您真的必须改用遗留的触摸事件,则必须在您的 touchmove 事件中实现 event.preventDefault(),这将阻止触发 touchcancel ,但它也会完全禁用浏览器对任何默认操作(如平移或单击)的处理。

关于javascript - 防止 Android Cordova 应用程序中的 TouchCancel 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com