如何检测后退按钮事件?

时间:2013-05-22 14:12:27

标签: jquery cordova jquery-mobile

如何在打开navigator.notification.confirm时检测后退按钮事件?后退按钮只是关闭弹出窗口,但是事件document.addEventListener('backbutton',onBackKeyDown,false);没有提出。

1 个答案:

答案 0 :(得分:0)

在您传递到success API的navigator.notification.confirm回调中,您可以获取点击了哪个按钮的buttonIndex。它没有记录,但如果buttonIndex = 0,则用户在对话框外单击以关闭它或单击“后退”按钮。

例如:

  function makeConfirm(){
        navigator.notification.confirm(
            'You are the winner!',  // message
            onConfirm,              // callback to invoke with index of button pressed
            'Game Over',            // title
            'Restart,Exit'          // buttonLabels
        );        
    }

    function onConfirm(buttonIndex){
        console.log("confirmation! Button clicked was:" + buttonIndex);
        if( buttonIndex===0 ){
            // they either hit back button or tapped the area outside of the dialog
        }
    }

我不确定是否有办法确定他们是否点击了实际的硬件后退按钮,或者只是单击了对话框。你可以在页面正文上注册一个click事件,看看是否会被触发,如果是,buttonIndex===0,那么他们会在对话框外点击。如果buttonIndex===0但没有被解雇,他们会点击硬件后退按钮。

我还阅读了有关使用JQM检测后退按钮是否被按下的StackOverflow的其他问题;也许你可以使用这个。