我今天注意到:sudo npm update -g phonegap显示v3.5可用。执行此更新后,phonegap -v返回:3.5.0-0.20.4
然后我继续使用Phonegap CLI创建示例应用程序:
此时,示例应用程序启动。但是,deviceready事件永远不会被调用。 (我添加了一些警报代码,可以看到app.initialize()和app.bindEvents()被调用。但onDeviceReady永远不会被调用。我也能用Android版本重现这个。
几个星期前,我使用与之前版本的Phonegap(v3.4.0-0.20.0)完全相同的过程来创建一个可以正常工作的HelloWorld340并调用onDeviceReady函数。
我意识到cordova 3.5.0的Phonegap 3.5.0包装只用了几天。也许它是包装中的一个错误?任何人都有任何想法或解决方案。
谢谢!
答案 0 :(得分:1)
好吧,即时通讯使用3.5.0-0.2.4,它就像一个魅力 也许你忘了继承cordova.js文件?
答案 1 :(得分:1)
过去几天有更多有趣的观察。我经历了这个过程,创建了一些项目。 (我正在将一堆旧的PhoneGap应用程序迁移到新的PhoneGap 3.5,并且更容易创建新的示例项目,只需移动现有的HTML / JS / CSS代码......)
在这项工作中,我注意到 - 通过几个特定步骤 - 生成的项目可以开箱即用“设备准备”。以下是详细信息:
然而,在第一次使用Xcode启动项目时,即使它位于Xcode中的“Staging / www”视图中,它似乎也没有被注意到。但是,如果你遵循程序,Xcode中的重建似乎注意到它在那里并打包正确的位以推送到设备/模拟器。
(但是,请注意,在初始创建的platforms / ios / www中出现的cordova.js文件不会被删除。因此,您最终会得到具有不同名称的同一文件的2个副本:cordova。 js和phonegap.js)
使用这种方法,您不必编辑生成的index.html解决方案(在此线程中作为另一个解决方案/解决方法提到)。
答案 2 :(得分:0)
感谢上面brauchle_andi的建议,我深入挖掘并发现了问题,并将其转载于干净的'生成项目。
我正在使用PhoneGap 3.5.0-0.20.4
我在下面生成了一个新项目(详细信息),文件 cordova.js 被放置在正确的平台/ ios / www文件夹中
但是,生成的 index.html 会引用加载脚本文件 phonegap.js 。编辑index.html以加载 cordova.js 可修复此问题。
似乎是PhoneGap打包过程中的一个错误。
以下是重现此问题所采取的步骤:
这会创建具有上述问题的项目。编辑index.html并重新运行项目会修复它。