Cordova iOS deviceready 永远不会触发

Posted

技术标签:

【中文标题】Cordova iOS deviceready 永远不会触发【英文标题】:Cordova iOS deviceready never fires 【发布时间】:2016-10-18 07:21:25 【问题描述】:

多年来,我一直在开发 Cordova 应用程序,并且经常遇到“设备就绪”事件在 ios 中根本不会触发的问题。 (这不是 cordova.js 文件丢失,这似乎是我在 SO 上找到的唯一答案)。 目前我正在使用 Cordova v6.3.1,尽管我在许多早期版本中都遇到过同样的问题。

其他人肯定会遇到这个问题 - 我现在会尝试解决它,并将答案发布在这里。


示例index.html 代码:

<html>
    <body>
        <script src="cordova.js"></script>
        <script>
            document.addEventListener("deviceready", 
               function()  alert('device ready fired!'); , false);
        </script>
    </body>
</html>

【问题讨论】:

您的 javascript 代码可以阻止您的 Cordova 应用程序初始化吗? 【参考方案1】:

这可能是由于 iOS 的更改导致我使用的推送插件停止工作。 我做了很多事情,他们可能都有帮助,我会一一列举:

什么似乎解决了它

    删除所有插件并重新添加

cordova plugin ls (查看所有插件并记下它们) cordova plugin rm plugin-name (每个) cordova plugin add plugin-name (add 'em all back in )

什么也可能有所帮助

    我更新到最新的 Xcode

    将cordova(和cordova-ios)更新到最新版本

sudo npm install -g cordova cordova 平台更新 ios@latest

    添加和删除ios平台

cordova 平台 rm ios 科尔多瓦平台添加ios

【讨论】:

我现在制作了一个脚本,可以删除然后重新添加我所有的插件 - 使得在需要时更容易进行此修复。

以上是关于Cordova iOS deviceready 永远不会触发的主要内容,如果未能解决你的问题,请参考以下文章

Ionic + cordova-sqlite-storage + deviceready = 过渡时没有渲染?

在 Cordova 3.2.0 中未触发 deviceready 事件

Cordova 3.5 deviceready 事件在 5 秒后未触发

ATTN PhoneGap/Cordova 项目贡献者:以 2 种不同方式调用 deviceready 回调的问题

Phonegap (NOT Cordova) 3.5 示例应用程序未启动 deviceready

根据 iOS 版本更改 Cordova 首选项