【发布时间】:2014-06-10 11:15:00
【问题描述】:
我有使用 ionicframework 和 cordova 完成的应用程序。在我的应用程序中,我要求如果用户按下后退按钮,那么我需要忽略它。但只有在用户第三次按下它之后,它才会关闭应用程序。
以前的项目是使用 phonegap 和 jquery 完成的,并且代码相同。当我抛出异常时,我做了一些小的解决方法,然后应用程序在不应该关闭的时候没有关闭。
document.addEventListener("backbutton", function (e) {
if (new Date() - firstDateClick > 1000) {
firstDateClick = new Date();
totalClicks = 1;
} else {
totalClicks++;
if (totalClicks >= 3) {
var answer = confirm('Are You Sure You Want Exit');
if (answer) {
var service = angular.injector(['ng', 'starter.services']).get('DanceService');
service.logEvent("exit")
.then(function () {
alert('exit1')
if (navigator.app) {
navigator.app.exitApp();
}
else if (navigator.device) {
navigator.device.exitApp();
}
})
} else {
totalClicks = 1;
}
}
}
throw "ignore"
});
但我不喜欢抛出异常的想法。
【问题讨论】:
-
我看不到您在哪里使用 preventDefault
-
@jcesar 我只发布了解决方法...
-
无论如何,如果你监听后退按钮事件并创建一个函数而不管理它,你不必阻止任何事情。尝试向函数添加第三个参数。 document.addEventListener("backbutton", yourCallbackFunction, false);
标签: angularjs cordova-3 ionic-framework