Jquery Mobile" Stack"导航问题

时间:2014-09-05 20:53:54

标签: android jquery-mobile cordova navigation

我在Android上使用jQuery Mobile + Phonegap进行页面导航时遇到问题。 我正在尝试复制Android堆栈导航。

情况如下:

用户未登录且位于主页

  1. 点击“操作A ”,需要记录。
  2. 显示登录页面。
  3. 显示“操作A ”页面。
  4. 问题是: 当用户按下后退按钮时,它应该返回主页面,而不是登录页面。

    但历史上的“堆叠”是这样的:

    主要|登录|行动A

    我试着这样做:

    // return from Login page to Main:
    history.back(); // $.mobile.back(); works the same way in this case.
    
    // then go to Action A page:
    $.mobile.changePage( pageA );
    

    但是“更改页面”是在“后退”命令之后执行的,因此它会进入操作A页面,然后返回登录页面。

    在Android上,这是一项非常简单的任务。 :(

2 个答案:

答案 0 :(得分:0)

您可以使用

window.history.go(-2) //Go two pages back

或两次相同的方法

history.back(); //Go one page back
history.back(); //Go another one page back

答案 1 :(得分:0)

只是不要“回”并导航到下一页。

在“ onBackPressed ”事件处理程序中,检查JQM堆栈并使用history.go(-2)。像这样:

var index = $.mobile.navigate.history.activeIndex - 1;
if ( index >= 0 ) {
    var backStep = -1; // back one by default
    var hash;
    while ( index > 0 ) {
        hash = $.mobile.navigate.history.stack[ index ].hash;

        if ( hash == "#pageLogin" ) {
            backStep--;
        }

        index--;
    }

    window.history.go( backStep );
}