Android:无法捕获javascript中的后退按钮

时间:2014-12-12 14:20:56

标签: javascript android jquery html5 intel-xdk

我正在使用IntelXDK开发HTML5,CSS3和JavaScript的Android应用程序,该应用程序是一个单页应用程序,在使用HTML按钮切换视图时工作正常但是当按下移动设备上的后退按钮时应用程序退出我想捕获此事件并显示主屏幕。

该事件可在模拟器中运行,但不适用于物理设备

这是我为捕获后退按钮点击事件所做的工作,但应用程序才关闭:

$(document).ready(function () {

    var animTime = 300,
        clickPolice = false;

    $(document).on('click', '.acc-btn', function () {
        if (!clickPolice) {
            clickPolice = true;

            var currIndex = $(this).index('.acc-btn');

            $('.acc-content').stop().animate({ height: 0 }, animTime);
            $('.acc-content').eq(currIndex).stop().animate({ height: 108 }, animTime);

            setTimeout(function () { clickPolice = false; }, animTime);
        }
    });

    //Back button event
    document.addEventListener('backbutton', function () {
        if ($('#front').hasClass('hidden')) {
            ShowPage('front');
            return false;
        }
        else {
            navigator.app.exitApp();
        }
    }, false);
});

//Show page function etc.....

我知道ShowPage函数在其他地方使用时效果很好

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

查看Android的以下链接 - https://software.intel.com/en-us/node/493108

您必须捕获后退按钮并添加虚拟页面以防止该应用退出

document.addEventListener("intel.xdk.device.hardware.back", function() {
//continue to grab the back button
   intel.xdk.device.addVirtualPage(); 

}, false); 

答案 1 :(得分:0)

尝试从addEventListener中删除boolean参数,以便

//Back button event
document.addEventListener('backbutton', function () {
    if ($('#front').hasClass('hidden')) {
        ShowPage('front');
        return false;
    }
    else {
        navigator.app.exitApp();
    }
});