【问题标题】:Phonegap deviceready event only fires when app loses focusPhonegap deviceready 事件仅在应用失去焦点时触发
【发布时间】:2016-09-28 00:53:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios cordova phonegap-cli


    【解决方案1】:

    这篇文章的分辨率: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 事件。

    【讨论】:

    • 这帮助了我!谢谢!
    • 这解决了我们在启动画面后应用程序开始出现空白屏幕的问题。应用商店的人认为这是由于 IPv6 网络不兼容造成的。但实际上是因为这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多