【问题标题】:Deprecated touch operations on mobile apps已弃用移动应用程序上的触摸操作
【发布时间】:2017-01-13 23:03:27
【问题描述】:

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

【问题讨论】:

    标签: javascript html google-chrome cordova dom-events


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多