在iOS 10上启动期间挂起的Cordova app

时间:2016-07-16 10:24:25

标签: ios xcode cordova ios10 xcode8-beta2

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

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

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

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

更新

此问题的其他症状包括:

  • 如果你背景应用程序(切换回主屏幕)然后前景应用程序(切换回应用程序),应用程序将正确启动
  • 在执行上述切换
  • 之前,某些插件无法正常工作

2 个答案:

答案 0 :(得分:76)

好的,我发现问题和解决方案归功于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上正常运行。

希望这有助于其他人。

答案 1 :(得分:3)

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

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

修复了它
child-src * gap://ready

到Content-Security-Policy标记