如何捕获退出应用程序事件?

时间:2014-05-01 14:18:11

标签: cordova phonegap-plugins phonegap-build cordova-3 cordova-plugins

HY!我需要在我的phonegap应用程序中捕获退出应用程序事件。实际上我想触发一个looseLife()函数,如果玩家试图欺骗并退出应用程序,最小化并退出任务管理器,而他已经启动了一个新的lvl。如果他正确退出,按下后退按钮就可以正常工作。

我尝试过onunload或onbeforeunload但只有在我正常关闭应用程序时才会调用这些函数,而不会将其最小化并从任务管理器关闭它。

暂停功能对我没有帮助,因为如果屏幕被锁定或用户切换到另一个应用程序而不是再次返回,它也会被触发。

如何在应用程序最小化并在任务管理器中关闭时捕获事件?

5 个答案:

答案 0 :(得分:4)

我发现window.onbeforeunload可以更好地清理资源。可能偏离主题但我认为window.onbeforeunload不会创建任何竞争条件类型问题。

答案 1 :(得分:2)

您可以使用window.onunload事件。

为我工作就好了。

答案 2 :(得分:1)

我不认为您可以抓住用户在执行任务管理器时杀死您的应用。这就是任务经理的观点。然而,如果人们在游戏中使用它来作弊,你可以在记忆中设置一个标志,表示他们在游戏中并让程序取消设置它们正常退出。如果他们以游戏中的标志开始游戏,那么你知道他们已经被骗了并且可以触发looseLife()吗?

答案 3 :(得分:0)

使用beforeunload事件:

window.addEventListener('beforeunload', function(event) {
  console.log(`do something with the event:`, event);
  // most recommended is to emit socket like this (just for example):
  // socket.emit("exit-app", {access_token});
});

应在应用关闭之前发出并运行。 建议使用此方法执行操作的方法是使用套接字(例如,Socket.io)发送到服务器。不要使用HTTP请求,因为HTTP请求在套接字号为0时等待回调或任何握手。在这种情况下,最好使用套接字。

答案 4 :(得分:0)

使用这些事件:

将应用置于后台时触发此事件。

document.addEventListener("pause", (() => {
  console.log('pause');
}), false);

从后台返回应用程序时触发此事件。

document.addEventListener("resume", (() => {
  console.log('resume');
}), false);