Phonegap jQuery Mobile 应用程序遇到随机重定向

Posted

技术标签:

【中文标题】Phonegap jQuery Mobile 应用程序遇到随机重定向【英文标题】:Phonegap jQuery Mobile app experiencing random redirects 【发布时间】:2013-01-04 16:23:46 【问题描述】:

我有一个使用原生 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 的 pageshowpagehide 事件,并且页面转换对于所有页面更改都正常触发,因此看起来原始页面正在正常加载。当然,我只是不知道为什么我要更改第二页,回到原来的页面。

我怀疑标签按钮onSelect 回调再次被触发,因为问题似乎主要是当我从带有标签栏项目的页面转到没有标签栏项目的页面时,才被重定向回来。

有没有人遇到过这种情况? jQuery Mobile 中是否还有其他挂钩可以用来监控页面状态和状态变化?

【问题讨论】:

【参考方案1】:

我也有同样的问题。这不是 phonegap 错误。

我在以下几种情况下使用 JQMphonegap、web mobile 和 web。

我仅在一种特殊情况下在网络模式(没有 phonegap)中检测到该错误。

我们有一个网页闪屏,当所有内容通过 changePage 初始化到我们的主页时,它就会消失。

当更改太快时(这就是为什么我认为它只出现在桌面上),我们也有你的随机错误 (20%)。 JQM 返回上一页(splashscreen)并且不启动 pagebeforechange 事件。

似乎唯一可行的方法是使用 2s 的 setTimeout()(这是巨大的)来延迟更改页面。

如果有人有解释...

提前谢谢。

【讨论】:

以上是关于Phonegap jQuery Mobile 应用程序遇到随机重定向的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery Mobile 和 Phonegap 为 iPhone 应用程序存储位置

Phonegap jQuery Mobile 应用程序遇到随机重定向

在 Phonegap 项目中使用普通 JQuery(使用 JQuery Mobile)

使用 jQuery Mobile、Django 和 Phonegap 构建移动应用程序

从 JQuery Mobile 到 PhoneGap / Cordova

防止放大Phonegap + JQuery Mobile