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 事件 - 波纹模拟器