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

时间:2016-09-28 00:53:00

标签: ios cordova phonegap-cli

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

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

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

1 个答案:

答案 0 :(得分:8)

这篇文章的分辨率为:Cordova app hanging during startup on iOS 10 (beta)

引用:

  

似乎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事件。