Ripple Emulator不会触发事件

时间:2013-07-17 14:01:02

标签: javascript-events ripple

我安装了最新的Ripple Emulator(Chrome Store中最新版本),一切正常,除了活动。它们都没有发射(不仅deviceready和其他SO问题一样,没有。)

既不手动(使用Events窗格)也不自动(deviceready)。

当我使用手动方法时,Ripple会向控制台写一条线,它正在触发一个事件,但实际上并没有发生任何事情。我的申请根本没有反应。我有backbutton事件绑定,它在Ripple中不起作用。当我将其init部分移动到deviceready事件时,应用程序停止工作,因为它没有被触发。当然,在目标设备上一切都很好,所以代码应该是正确的。

可能导致此类行为的原因是什么?有什么解决方法吗?

编辑:我在Windows 7上安装了Ripple Emulator (Beta) 0.9.15作为Chrome扩展程序。目标设备上的所有功能都很好,因此JS代码(事件处理程序)应该没问题。

1 个答案:

答案 0 :(得分:3)

经过深入调查后,我设法解决了这个问题(至少部分是这样 - 有些事件被解雇了,有些事件没有被解雇)。就我而言,它是一个缺少.js(PhoneGap源)文件的问题。

成功的关键是:

  1. 实际上将PhoneGap / Cordova JS 文件放在您的应用内容中,并在源文件中正确引用(有效路径和文件名)。< / p>

  2. 在撰写本文时,将源文件包含在正确版本(2.0.0)中。

  3. 对于被指示删除源文件的PhoneGap Build用户来说,

    第一次可能会特别令人困惑。源文件(<script type="text/javascript" src="cordova.js"></script>)中的引用应该不受影响,但它引用的文件不应该退出。 PhoneGap Build将在编译/构建过程中注入此文件(在适当的版本中)。

    这适用于PhoneGap,但完全错误的Ripple 。如果您希望Ripple功能齐全且能够触发事件(至少是确定的话),您应该保留该文件。我发现,这根本不会干扰PhoneGap。无论是否存在该文件,都可以毫无问题地构建应用程序。

    第二也很重要。我发现,当前版本的Ripple是基于PhoneGap API 2.0.0构建的,这对于当前可用的PhoneGap API 3.0.0非常非常老。因此,要让Ripple几乎没有故障,你必须[浏览PhoneGap存储库(http://phonegap.com/install/)并获取 PhoneGap 2.0.0 源,发布 2012年7月20日并从中提取cordova.js个文件。然后将其放在webapp的源文件夹中,添加正确的引用并尝试Ripple。

    现在至少应该触发一些事件(有些事件,如deviceready)可能仍会失败。

    另外,请记住,everything, including event handlers, must be defined in a deviceready event listener code或整个事情都会失败。

    Ripple的JIRA问题,可能与此有关:

    BTW:如果你打开浏览器的控制台并手动触发一个事件,你会看到Ripple写入控制台的正确通知。这意味着,Ripple 认为,如果在模拟的webapp上触发偶数,但它实际上不会触发它