我已经构建了一个混合应用程序(游戏),并且正在使用PhoneGap Build构建我的软件包。到目前为止,我已经在Android手机,iPhone和iPad上测试了该应用程序。 iPad是唯一给我带来问题的设备,我怀疑它与双击和300ms延迟有关。
首先,我没有遇到延迟(我的游戏使用touchend事件)。但是,每当我点击屏幕时,大约半秒钟后(我猜是300ms之后;)),整个游戏就会暂停十分之一秒左右。我认为这一定与双击有关,因为如果双击,则不会发生暂停。
有没有一种方法可以完全禁用双击?还是通过其他方法摆脱暂停?顺便说一句,在iPhone上,我并没有遇到这个问题,仅在iPad上。
答案 0 :(得分:0)
事实证明,这确实与300ms抽头延迟有关。即使我实际上是在使用touchend事件来检测屏幕点击,即使我认为我都已通过以下方式禁用了双击/轻击:
<meta name="viewport" content="width=device-width, user-scalable=no" />
和
<style>
* {
-webkit-user-select: none; /* Prevent Double tap (COPY/SELECT) on iOS */
}
</style>
300毫秒的延迟仍然存在,因此在300毫秒之后,产生了单击事件,由于某种晦涩的原因,该事件导致了暂停。因此,为了防止这种情况,我只是“禁用”了 touchstart 事件:
element.addEventListener("touchstart", function(e) {
e.preventDefault();
e.stopPropagation();
}, false);
Voila。问题解决了。 :)