PhoneGap Deviceready 不会在应用程序首次运行时触发 (iOS)

Posted

技术标签:

【中文标题】PhoneGap Deviceready 不会在应用程序首次运行时触发 (iOS)【英文标题】:PhoneGap Deviceready won't fire on first run of app (iOS) 【发布时间】:2013-12-20 16:47:18 【问题描述】:

我的应用出现了一个奇怪的问题。

这是一个使用 jQuery(不是 jQuery mobile)的多页手机间隙应用程序。

当您在安装后首次运行该应用程序时,它会在索引页面上触发设备就绪。

移动到其他页面后,deviceready 不会再次触发。

如果我关闭应用程序并重新启动它,一切都会正常工作,并且设备准备就绪会在每个页面上触发。

总而言之:deviceready 不会在索引以外的页面上首次运行应用程序(安装后)时触发。

另外,我的 phonegap 插件在第一次运行时都不起作用。

应用程序首次运行后有何变化?这太奇怪了……

版本:PhoneGap 2.9.0。

【问题讨论】:

【参考方案1】:

deviceready 事件只会在您启动应用程序时触发一次。如果您从后台返回,则必须收听resume。

当您在应用启动后在这些页面之间切换时,您可以执行.ready() 之类的操作来处理特定页面何时加载,如下所示:

$(document).ready(function() 
    // Do your stuff here
);

您可以阅读有关 PhoneGap 事件的更多信息here。

【讨论】:

【参考方案2】:

好的,最终我了解到 PhoneGap 和多个页面不能很好地配合使用。所以我在一个页面中重新编写了整个该死的东西,并且仅使用 jquery mobile 进行页面 ajax 缓存。最终我得到了更好的过渡和更快的应用程序:)。

所以我的建议是:如果您刚刚开始编写 phonegap 应用程序。使用一页结构,它会为你节省大量的调试时间。我也不建议过多使用 jquery mobile 的功能,只需坚持页面转换,其余部分使用常规 jquery。

希望这对某人有所帮助:)

【讨论】:

以上是关于PhoneGap Deviceready 不会在应用程序首次运行时触发 (iOS)的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap Deviceready 不会在应用程序首次运行时触发 (iOS)

将 sencha touch 2 集成到 phonegap 中,无法启动 'deviceready' 事件

phonegap deviceready 事件 - 波纹模拟器

deviceready 没有在 phonegap 中触发

jQuery Mobile 打破了 Phonegap deviceready 事件

Phonegap (NOT Cordova) 3.5 示例应用程序未启动 deviceready