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

Alv*_*oro 6 javascript html5 google-chrome javascript-events cordova

在我开发的过去的移动应用程序中,我发现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,但快速点击/点击仍然是一个问题.

jce*_*ile 4

创建 Cordova 应用程序时,您会针对不同的操作系统版本,Android 5 及更高版本具有基于 Chromium 的自动更新 webview,因此该问题可能会影响您的应用程序。

但从 Chrome 32 开始,使用此视口时<meta name="viewport" content="width=device-width">,点击延迟应该消失(请参阅这篇文章),因此您可以安全地使用click事件。android 5 和 6 上的最新 webview 基于 Chromium 52。

您还可以使用fastclick库,仅在必要时“修复”点击延迟