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

Deprecated touch operations on mobile apps

本文关键字:触摸 操作 应用程序 移动      更新时间:2023-09-26

在我过去开发的手机应用中,我发现click事件在所有设备上都不能像预期的那样工作(例如:在用户必须快速点击屏幕的游戏中,而不是触发click事件,双击被触发),使用touchstart可以得到我想要的更好的结果。

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

在touchstart事件上执行需要显式用户交互的操作已被弃用,并将在2016年10月左右在M54中删除。详见https://www.chromestatus.com/features/5649871251963904

我访问了链接页面(和它里面的链接),似乎这个新的行为是为了避免某些不必要的行动,特别是避免第三方iframes或广告(我的应用程序没有)从打开弹出窗口。我尝试将事件更改为touchend(作为其中一个链接声明" touchend事件将继续像以前一样运行"),但得到了类似的警告消息。

和我的问题:

  • 这是只影响Chrome的东西,还是会影响我的web应用程序(与Cordova/Phonegap)为Android和iOS?
  • 我应该用什么事件来代替touchstart,避免我过去遇到的问题?我可以回到click,但快速点击/点击仍然是一个问题。

当你创建Cordova应用时,你的目标是不同的操作系统版本,Android 5及以上有基于Chromium的自动更新webview,所以这个问题可能会影响你的应用。

但是自从Chrome 32,当使用这个viewport <meta name="viewport" content="width=device-width">,点击延迟应该消失(见这篇文章),所以你可以安全地使用click事件。android 5和android 6上最新的webviews是基于Chromium 52的。

你也可以使用fastclick库,它将只在必要的地方"修复"点击延迟