繁体   English   中英

通过javascript中的phonegap覆盖Android设备的后退按钮

[英]Over-ride the back button of android device through phonegap in javascript

我正在使用HTML5和javascript制作应用程序并在Android设备上部署。 在申请中确认后,我不希望它回到上一页。 但是,在设备的后退按钮上,它会在前一页上显示。

我尝试了很多演示。 以下是我试过的链接之一。 http://docs.phonegap.com/en/2.8.0/cordova_events_events.md.html#backbutton

我试着为演示目的显示警报。 但它不起作用。

请帮助您的建议。 谢谢。

我尝试了以下内容。 它不起作用。 我是否需要添加任何外部jquery文件?

<script type="text/javascript" charset="utf-8">
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
        alert("On Load");
    }

     function onDeviceReady() {
        document.addEventListener("backbutton", onBackKeyDown, false);
        alert("Device Ready");
    }

    //document.addEventListener('backbutton', onBackKeyDown, false);

    function onBackKeyDown(event) {
        event.preventDefault();
        alert("back pressed");
    }
    </script>

防止后退按钮默认行为的正确方法是添加prevent default方法:

document.addEventListener('backbutton', onBackKeyDown, false);

function onBackKeyDown(event) {
    // Handle the back button
    event.preventDefault();
    alert('I am a demo purpose alert thingy');
}

看看你传递的第三个参数。 它指示侦听器是使用捕获还是冒泡。 您可在此处找到更多信息。

您希望在开始(捕获)而不是在结尾(气泡)捕获后退按钮事件。

所以试试吧

document.addEventListener("backbutton", onBackKeyDown, true);

代替

document.addEventListener('backbutton', onBackKeyDown, false);

这是我使用if else设备后退按钮的示例

//device back button functions
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    document.addEventListener("backbutton", onBackKeyDown, false);
}

function onBackKeyDown() {
    if($state.current.name == 'home'){
        // e.preventDefault();
        navigator.app.exitApp();
    } else {
       $state.go('home');
      e.preventDefault();

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM