31

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

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

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

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

更新

此问题的其他症状包括:

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

2 回答 2

81

好的,由于这篇文章,我找到了问题和解决方案:

似乎 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 上正常运行。

希望这对其他人有帮助。

于 2016-07-16T10:49:10.547 回答
3

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

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

child-src * gap://ready

到 Content-Security-Policy 标签

于 2017-08-03T03:26:33.670 回答