销毁后退按钮事件 - android

时间:2013-01-17 09:26:36

标签: javascript android html5 cordova event-listener

我在Android的后退按钮(PhoneGap 2.2.0)中创建了以下事件:

document.addEventListener("backbutton", function (e) {
    //Do Something
}, false);

我有以下链接将我带到应用程序的外部网站

我的链接

我覆盖了后退按钮事件,一旦我将应用程序内部传递到另一个链接,事件就不会被取消..而且由于另一个链接不知道cordova,他甚至无法访问此事件。

所以我必须完全取消它!

我是怎么做的??

当我按下后退按钮时,我在日志中收到以下错误消息:

Uncaught ReferenceError: cordova is not defined at :1

没有任何反应..

2 个答案:

答案 0 :(得分:2)

function onBackKey() {
    console.log("I've caught a back key");

    // We are going back to home so remove the event listener
    // so the default back key behaviour will take over
    document.removeEventListener("backbutton", onBackKey, false);

    // Hide the current dive and show home
    document.getElementById(cur).style.display = 'none';
    document.getElementById('home').style.display = 'block';    
    cur = 'home';
}

function goToDiv(id) {
    // We are moving to a new div so over ride the back button
    // so when a users presses back it will show the home div
    document.addEventListener("backbutton", onBackKey, false);

    // Hide home and show the new div
    document.getElementById('home').style.display = 'none';
    document.getElementById(id).style.display = 'block';
    cur = id;
}

放置html标签

 <div id="home">Back Button Home<br/><a href="javascript:goToDiv('div1')">Div One</a><br/><a href="javascript:goToDiv('div2')">Div Two</a></div>

请在下面找到详细解答的链接

https://gist.github.com/955496

答案 1 :(得分:1)

你可以实现它

boolean toRun = true;

document.addEventListener("backbutton", function (e) {
    if (toRun)    
    {
        //Do Something
        toRun = false;
    }
});

根据需要设置布尔值。并检查,如果它的第一次,执行代码。否则什么都不做。

希望它有所帮助。