【问题标题】:Cordova app hanging during startup on iOS 10在 iOS 10 上启动期间 Cordova 应用程序挂起
【发布时间】:2016-11-19 11:50:19
【问题描述】:

我刚刚安装了 Xcode 8 测试版,以便在 iOS 10 测试版中测试我现有的 Cordova 应用程序(通过模拟器)。当应用程序启动时,它只是挂在加载页面上 - 似乎 deviceready 事件没有被触发。

所以我还在我的 iPad Air 上安装了 iOS 10 测试版(以防万一它是模拟器问题),但我得到了相同的结果。

该应用在 iOS 9.3(设备和模拟器)上运行良好。

有人遇到/解决过这个问题吗?

更新

此问题的其他症状包括:

  • 如果您将应用程序置于后台(切换回主屏幕)然后将应用程序置于前台(切换回应用程序),该应用程序将正确启动
  • 在您进行上述切换之前,某些插件将无法正常工作

【问题讨论】:

    标签: ios xcode cordova ios10 xcode8-beta2


    【解决方案1】:

    好的,感谢this post,我找到了问题和解决方案:

    iOS 10 似乎需要在Content-Security-Policy 元标记中添加额外的条目,即gap:file:。添加这些之后,我的Content-Security-Policy 看起来像这样:

    <meta http-equiv="Content-Security-Policy" content="default-src * gap: file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">
    

    应用程序启动并在 iOS 10 上正常运行。

    希望这对其他人有所帮助。

    【讨论】:

    • 添加到 index.html 的 部分。请参阅cordova-plugin-whitelist docs,但请注意,iOS 无需安装此插件即可获取元标记。
    • @Warrior 该错误与此 Content-Security-Policy 问题无关。很可能是某个插件不适用于 iOS 10。
    • 我遇到的问题是 $http.get() 在 iOS 10 上检索数据需要很长时间,而 iOS 9.3 是即时的。添加两个标签解决了这个问题。谢谢!
    • 工作得很好(非常感谢你,因为我这里的调试信息几乎为零!)。万一其他人想知道,对我来说,另一个症状是如果您切换回应用程序菜单然后跳回应用程序,应用程序正确启动。考虑到解决方案,这没有任何意义,但是,这就是发生的事情。
    • 奇怪的是,我遇到了完全相同的问题。不幸的是,在元标记中添加条目对我不起作用。
    【解决方案2】:

    我在启动过程中遇到了同样的问题,即使我确实双击主页按钮并返回应用程序,cordova 的文件系统也不会写入设备。

    我尝试了很多东西,但最后通过添加修复它

    child-src * gap://ready
    

    到 Content-Security-Policy 标签

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      相关资源
      最近更新 更多