【问题标题】:Cordova adds 350ms delay on click() events in iOSCordova 在 iOS 中的 click() 事件上增加了 350 毫秒的延迟
【发布时间】:2018-08-25 15:25:44
【问题描述】:

如果我使用 $('button').click(function() { alert('hi'); } 之类的内容并将以下内容添加到我的 <head>

<meta name="viewport" content="user-scalable=no, width=device-width">

..我在 iOS 11 上将其作为普通移动网站运行,没有延迟(=> 预期行为)。

但是,如果我在 iOS 上编译的 Cordova 混合应用程序中运行完全相同代码,则延迟回来了! (=> 不好)

我是否必须像 2013 年那样再次开始使用 fastclick.js 或其他一些解决方法?那么这里的其他 Cordova 开发人员呢:您是否遇到过同样的问题?

PS:它在 Android 上运行良好。

PPS:不幸的是,在 CSS 中添加 touch-action: manipulation; 并没有帮助

【问题讨论】:

    标签: javascript ios cordova delay phonegap


    【解决方案1】:

    关于 fastclick 问题,显然这是 iOs 11.3 引入的一个新错误。

    这里是full explanation

    这是一个解决fastclick issue with iOs 11.3的fork

    我也在寻找一种解决方法,因为 fastclick 看起来不再需要维护了...

    【讨论】:

    • 太好了,谢谢。让我们知道是否有任何新的发展:)
    【解决方案2】:

    我们遇到了完全相同的问题。

    使用 FastClick 作为解决方法适用于大多数 iOS 版本,但最新的 iOS 版本:11.3 除外。 在重新启动 Cordova 应用程序后,FastClick 按预期工作,但过了一段时间(尤其是在调用本机 iOS 调用时(如拍照时),它显示出奇怪的行为,您的输入字段(嵌套在其他 div 中)根本没有被选中你必须点击多次才能选择一个输入字段。

    我不知道为什么 350 毫秒的延迟对于 (Cordova) 应用程序仍然有效,而不是对于在 Safari 中打开的标准移动网站。

    感谢Romain Le Qllc 的提示,我将 fastclick 替换为他提到的 fork (https://github.com/lasselaakkonen/fastclick)。 这解决了 iOS 11.3 和 11.4 中的问题。

    也非常感谢lasselaakkonen

    【讨论】:

      猜你喜欢
      • 2017-07-24
      • 2013-08-08
      • 2021-11-19
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 2012-07-01
      • 2015-07-12
      • 2012-08-27
      相关资源
      最近更新 更多