只有当应用程序失去焦点时,才会触发Phonegap deviceready事件

b4t*_*tch 5 ios cordova phonegap-cli

我已经通过npm安装了最新版本的phonegap,并且最近将我的iPhone SE更新到了iOS 10.现在,当我的设备通过USB线连接到我的iMac时运行"phonegap run ios",应用程序加载,我从app.bindEvents函数获取调试警报,但不会触发deviceready事件.但是,直到我的应用程序失去焦点(通过双击主页按钮),此时我的onDeviceReady中的调试警报将触发.

我认为它与我的应用程序有关,所以我删除了所有第三方插件和所有多余的javascript,但仍然发生了同样的事情.所以我创建了一个全新的应用程序,它安装了默认的Phonegap"Connecting to device ..."页面,即便如此,即使我没有以任何方式修改它.同样,当应用程序失去焦点时,我会收到"设备就绪"消息.

有没有人知道为什么会发生这种情况?

b4t*_*tch 8

这篇文章的解决方案:在iOS 10(测试版)启动期间挂起的Cordova app

报价:

似乎iOS 10需要Content-Security-Policy元标记中的其他条目,即gap:// ready和file:.添加这些后,我的Content-Security-Policy如下所示:

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

因此,只需更改index.html文件中的上述元标记,然后触发deviceready事件.