Cordova iOS“deviceready”事件从未触发

4
我已经开发Cordova应用程序多年了,经常遇到iOS中“deviceready”事件根本不触发的问题。
(这不是缺少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>

1
你的JavaScript代码块能够为你的Cordova应用程序初始化吗? - Mrunal
1个回答

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

看起来解决了问题的方法

  1. 删除所有插件并重新添加它们

cordova plugin ls (查看所有插件并记录下它们)
cordova plugin rm plugin-name (对于每个插件)
cordova plugin add plugin-name (将它们全部添加回去)

可能也有帮助的方法

  1. 我升级到了最新的Xcode

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

sudo npm install -g cordova
cordova platform update ios@latest

  1. 添加和删除ios平台

cordova platform rm ios
cordova platform add ios


1
我现在已经编写了一个脚本,可以删除并重新添加所有我的插件 - 这样在需要修复时就容易得多。 - kris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接