我有一个使用原生tab bar和navigation bar插件以及jQuery Mobile的Phonegap 2.2应用。我通常在浏览我的应用程序时没有问题,但在某些情况下我会打开一个页面,只是被快速重定向回到上一页。
我怀疑标签栏或jQuery Mobile代码(或者更可能是他们的交集)是导致此错误的原因。我有一个多页面模板,用jQuery Mobile的术语,我正在以编程方式进行导航:
$.mobile.changePage('#page-id')
原生标签栏项的配置如下:
plugins.tabBar.createItem("contact", "Unused, iOS replaces this text by Contacts", "tabButton:Contacts", {onSelect: function() {
$.mobile.changePage('#contact')
plugins.navigationBar.setTitle("Contacts")
}})
我正在收听jQuery Mobile的pageshow
和pagehide
事件,并且所有页面更改都会正常触发页面转换,因此看起来原始页面正常加载。当然,我只是不知道为什么我正在改变第二页,回到原始页面。
我怀疑标签按钮onSelect
回调再次被解雇,因为问题似乎主要发生在我从带有标签栏项目的页面转到没有标签栏项目时,只是为了重定向回来。 / p>
之前有没有遇到过这个?可能有更多的jQuery Mobile钩子,我可以用它来监控页面状态和状态的变化吗?
答案 0 :(得分:2)
我有完全相同的问题。这不是 phonegap 错误。
我在几个上下文中使用 JQM : phonegap ,网络移动和网络。
我在一种特殊情况下仅在网络模式下检测到该错误(没有 phonegap )。
我们有一个网页启动画面,当所有内容通过 changePage 初始化到我们的主页时会消失。
当做这个改变太快时(为什么我认为它只出现在桌面上),我们也有你的随机错误(20%)。 JQM 返回上一页( splashscreen ),但未启动 pagebeforechange 事件。
似乎唯一有效的方法是使用setTimeout()
的2s(这是巨大的)来延迟更改页面。
如果有人有解释......
提前谢谢。