按住长按以退出Android PhoneGap上的应用程序

时间:2013-04-10 10:40:59

标签: javascript android html cordova

我有以下代码:

function logout_now()

//Logout of the app after a long press onKey(Longer then 5 sec)    Not working correctly

{
var startTime; 
var endTime;
var TimeDiff;

document.getElementById('Exit_btn').addEventListener('touchstart',function(event)
        {startTime = new Date().getTime();
        },false);

document.getElementById('Exit_btn').addEventListener('touchend',function(event){
        endTime = new Date().getTime();
        TimeDiff = endTime-startTime;   

        if( endTime-startTime > 5000 )  //logout after more then 5 Second = 5000 mSec
            {
            logout();      
            }
        },true);     
 }

当用户在等待5秒(长按)后按下Exit_btn时,它会启动以下功能:

功能注销() {

var password = prompt("Please enter the exit password");

if (password == "123")
     {
        alert("Goodbye");
        navigator.app.exitApp();
     }
else
     {
        alert("Wrong Password!");
        console.log("index.html");
     }

}

麻烦的是它没有顺利工作,这意味着如果我输入错误的密码,提示框会一直弹出,或者如果我最终正确地退出应用程序,当我再次启动它时会崩溃。

有人能在这看到问题吗?为什么会这样?

任何帮助表示感谢。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery Mobile taphold事件,如下所示......这可能对您有帮助......

HTML:

<div id="logout-btn">Logout</div>

jQuery Mobile:

$(function() {
   $( "#logout-btn" ).on('taphold', tapholdCallBack);
     // Callback function
     function tapholdCallBack(ev) {
        logout();
        .....
     }
});

$(document).delegate('div[data-role*="page"]', 'pageshow', function () {
  $(document).delegate('#logout-btn', 'taphold', function (ev) {
    logout();
  });
});

长按退出按钮750毫秒,它将调用logout()。

默认情况下,点按持续时间为750毫秒,如果您想通过指定值to $.event.special.tap.tapholdThreshold来更改点按的时间。如下所示...

 $(document).bind("mobileinit", function () {
    $.event.special.tap.tapholdThreshold = 5000,
 });