经过更深入的调查,我设法解决了这个问题(至少部分解决了——有些事件被触发了,有些则没有)。就我而言,这是缺少.js
(PhoneGap 源)文件问题。
成功的关键在于:
实际上将 PhoneGap / Cordova JS文件放置在您的应用程序内容中,并在您的源文件中正确引用它(有效路径和文件名)。
在撰写本文时,源文件的版本正确(2.0.0)。
首先对于 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/ ) 并获取2012 年 7 月 20 日发布的PhoneGap 2.0.0源并从中提取文件。然后将它放在你的 webapp 的源文件夹中,添加正确的引用,然后尝试 Ripple。cordova.js
现在至少应该触发一些事件(一些,比如deviceready
)可能仍然失败。
另外,请记住,包括事件处理程序在内的所有内容都必须在deviceready
事件侦听器代码中定义,否则整个事情都会失败。
Ripple 的 JIRA 问题,可能与此有关:
顺便说一句:如果您打开浏览器的控制台并手动触发一个事件,您会看到 Ripple 写入控制台的正确通知。这意味着,Ripple认为,如果在模拟的 web 应用程序上触发偶数,但实际上并没有触发它。