移动应用程序上的弃用触摸操作

时间:2016-09-06 13:09:30

标签: javascript html5 cordova google-chrome javascript-events

在我开发的过去的移动应用中,我发现click事件在所有设备中都没有按预期工作(例如:在用户必须在屏幕上快速点击/点击的游戏中,而不是触发click事件时,触发了双击),并使用touchstart为我想要的结果提供了更好的结果。

从那时起,我开始收听touchstart事件,而不是click;但是在Chrome上测试,我在JS控制台中收到了以下警告消息:

  

不推荐使用需要在touchstart事件上进行明确用户交互的操作,并且将于2016年10月左右在M54中删除。有关详细信息,请参阅https://www.chromestatus.com/features/5649871251963904

我访问了链接页面(及其中的链接),似乎这种新行为是为了避免某些不需要的操作,尤其是避免第三方iframes或广告(我的应用没有)从打开弹出窗口。我尝试将事件更改为touchend(作为其中一个链接" touchend事件将继续像以前一样行事"),但收到了类似的警告消息

我的问题:

  • 这是仅影响Chrome的内容,还是会影响Android和iOS的我的网络应用(使用Cordova / Phonegap)?
  • 我应该使用什么事件来取代touchstart并避免我过去遇到的问题?我可以回到click,但快速点击/点击仍然是个问题。

1 个答案:

答案 0 :(得分:4)

创建Cordova应用时,您定位不同的操作系统版本,Android 5及更高版本已根据Chromium自动更新网页视图,因此该问题可能会影响您的应用。

但是自从Chrome 32使用此视口<meta name="viewport" content="width=device-width">后,点击延迟就会消失(请参阅this article),因此您可以安全地使用click事件。关于android 5和6的最新网络视图基于Chromium 52。

您还可以使用fastclick库来修复&#34;点击延迟仅在必要时