Phonegap(不是Cordova)3.5示例应用程序没有激活deviceready

时间:2014-06-11 21:16:58

标签: android ios cordova

我今天注意到:sudo npm update -g phonegap显示v3.5可用。执行此更新后,phonegap -v返回:3.5.0-0.20.4

然后我继续使用Phonegap CLI创建示例应用程序:

  • cd myProjectFolder
  • phonegap创建HelloPhoneGap350
  • cd HelloPhoneGap350
  • phonegap local build ios(添加ios平台)
  • phonegap运行ios --emulator

此时,示例应用程序启动。但是,deviceready事件永远不会被调用。 (我添加了一些警报代码,可以看到app.initialize()和app.bindEvents()被调用。但onDeviceReady永远不会被调用。我也能用Android版本重现这个。

几个星期前,我使用与之前版本的Phonegap(v3.4.0-0.20.0)完全相同的过程来创建一个可以正常工作的HelloWorld340并调用onDeviceReady函数。

我意识到cordova 3.5.0的Phonegap 3.5.0包装只用了几天。也许它是包装中的一个错误?任何人都有任何想法或解决方案。

谢谢!

3 个答案:

答案 0 :(得分:1)

好吧,即时通讯使用3.5.0-0.2.4,它就像一个魅力 也许你忘了继承cordova.js文件?

答案 1 :(得分:1)

过去几天有更多有趣的观察。我经历了这个过程,创建了一些项目。 (我正在将一堆旧的PhoneGap应用程序迁移到新的PhoneGap 3.5,并且更容易创建新的示例项目,只需移动现有的HTML / JS / CSS代码......)

在这项工作中,我注意到 - 通过几个特定步骤 - 生成的项目可以开箱即用“设备准备”。以下是详细信息:

  • 我注意到,当从命令行创建应用程序时,phonegap.js文件似乎确实放在了正确的位置(yourProjectName / platforms / ios / www / phonegap.js)。

然而,在第一次使用Xcode启动项目时,即使它位于Xcode中的“Staging / www”视图中,它似乎也没有被注意到。但是,如果你遵循程序,Xcode中的重建似乎注意到它在那里并打包正确的位以推送到设备/模拟器。

  • CLI:phonegap local build ios
  • Xcode:产品 - 清洁< - 这似乎是重要的一步。
  • 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打包过程中的一个错误。

以下是重现此问题所采取的步骤:

  • 使用npm进行安装(虽然我可能已做过更新,但不要记得)PhoneGap 3.5.0-0.20.4
  • cd Documents / PhoneGapProjects(我放置Hello World程序的文件夹)
  • phonegap create / Users / John_Arnold / Documents / PhoneGapProjects / HelloPhoneGap350A -i" com.phonegap.HelloPhoneGap350A" -n" HelloPhoneGap350A"
  • phonegap运行ios --emulator

这会创建具有上述问题的项目。编辑index.html并重新运行项目会修复它。