jQuery Mobile(Android)PhoneGap中的后退按钮处理程序

时间:2013-06-23 07:21:03

标签: jquery-mobile cordova

有没有办法处理后退按钮(设备后退按钮)作为移动页面的默认功能?我需要在后退按钮上实现相同的功能转到上一页。如果没有上一页(第一页),则退出该应用程序。这可能在PhoneGap中吗?
我还需要在推送另一个页面之前弹出页面是否可以在jQuery中使用?

1 个答案:

答案 0 :(得分:1)

检查window.location.length将是确定您是否在第一页上的最简单方法,但这在Phonegap中不可用。

但是既然您正在使用JQM,您可以使用导航事件,如Omar建议的那样,或者可以手动计算显示的页数和返回的页数(同样的事情)并使用它来确定是否第一页正在显示以及是否退出应用程序。像这样的东西会起作用:

var pageHistoryCount = 0;
var goingBack = false;

$(document).bind("pageshow", function(e, data) {
    if (goingBack) {
        goingBack = false;
    } else {
        pageHistoryCount++;
        console.log("Showing page #"+pageHistoryCount);
    }
});

function exitApp() {
    console.log("Exiting app");
    navigator.app.exitApp();
}

function onPressBack(e) {
    e.preventDefault();
    if(pageHistoryCount > 0) pageHistoryCount--;
    if (pageHistoryCount == 0) {

        navigator.notification.confirm("Are you sure you want to quit?", function(result){
            if(result == 2){
                exitApp();
            }else{
                pageHistoryCount++;
            }
        }, 'Quit My App', 'Cancel,Ok');
    } else {
        goingBack = true;
        console.log("Going back to page #"+pageHistoryCount);
        window.history.back();
    }
}

function deviceready() {
    $(document).bind('backbutton', onPressBack);
}
$(document).bind('deviceready', deviceready);

至于问题的第二部分:

  

其次我需要在推送另一页之前弹出页面是这样的   在jquery中可以发现吗?

目前尚不清楚你在这里问的是什么。你的意思是你想要显示某种弹出内容,比如每个页面之间的对话更改?请澄清然后我可以帮助你: - )