jquery移动后退按钮退出特定页面的应用程序

时间:2015-02-03 10:00:20

标签: cordova jquery-mobile

我环顾四周,似乎无法将后门按钮绑定到Phonegap / JQM中Android手机的特定页面。

我正在尝试仅允许后退按钮触发navigation.notification.confirm以在1个特定页面上提示注销。但它要么不提示它,要么提示每一页。

以下不会触发

$(document).on( 'pageinit','homepage',function onLoad(){
                document.addEventListener('deviceready', deviceReady, false);
            }
        function deviceReady() {
            document.addEventListener('backbutton', backButtonCallback, false);
        }

        function backButtonCallback() {
            navigator.notification.confirm('Do you want to exit the app? If not, use the top left button to go to Previous Page',confirmCallback);
            }
        function confirmCallback(buttonIndex) {
            if(buttonIndex == 1) {
            navigator.app.exitApp();
            return true;
            }
        else {
            return false;
            }
        })

这不会触发

function onLoad(){
                document.addEventListener('deviceready', deviceReady, false);
            }
        function deviceReady() {
            document.addEventListener('backbutton','#homepage' backButtonCallback, false);
        }

        function backButtonCallback() {
            navigator.notification.confirm('Do you want to exit the app? If not, use the top left button to go to Previous Page',confirmCallback);
            }
        function confirmCallback(buttonIndex) {
            if(buttonIndex == 1) {
            navigator.app.exitApp();
            return true;
            }
        else {
            return false;
            }
        }

1 个答案:

答案 0 :(得分:1)

如果您使用的是Jquery Mobile 1.4.5,getActivePage()可以很方便。 $ .mobile.activePage在JQM 1.4.0中已弃用(请参阅自{1.4} beta #deprecation以来的http://blog.jquerymobile.com/更改)。

//handle Back button
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
    console.log('Device ready - register onBackKeyDown()');                
}

document.addEventListener("deviceready", onDeviceReady, false);

function onBackKeyDown() {
    var active_page = $( ":mobile-pagecontainer" ).pagecontainer( "getActivePage" );
    var id =active_page.page().attr('id');
    if (id==='homepage') {
        if (confirm('Do you want to exit the app? If not, use the top left button to go to Previous Page?')==true){
            navigator.app.exitApp();
        }
    }
    else{
    navigator.app.backHistory();
    }
}
//**

只有当activePage id为主页时,此代码才会退出应用程序。

告诉我代码是否适合您。