10

嗨!我需要在我的 phonegap 应用程序中捕获退出应用程序事件。实际上,如果玩家尝试作弊并使用最小化退出应用程序并退出任务管理器,而他已经开始了一个新的 lvl,我想触发一个looseLife() 函数。如果他正确退出它,按下后退按钮它工作正常。

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

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

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

4

4 回答 4

5

我发现 window.onbeforeunload 更适合清理资源。可能偏离主题,但我认为 window.onbeforeunload 不会产生任何竞争条件类型问题。

于 2015-11-30T22:23:08.970 回答
3

您可以使用window.onunload事件。

为我工作就好了。

于 2015-10-15T14:04:43.433 回答
1

我认为您无法在用户执行此操作时在任务管理器中捕获您的应用程序。这就是任务管理器的意义所在。但是,如果人们使用它在游戏中作弊,您可以在内存中设置一个标志,表示他们在游戏中,并让程序取消设置它,他们会正常退出。如果他们开始游戏时仍然设置了 in the game 标志,那么您会知道他们已经作弊并可能触发looseLife() 事情吗?

于 2014-06-03T23:15:18.333 回答
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 请求等待回调或任何握手,而套接字没有。在这种情况下,最好使用套接字。

于 2019-10-15T07:55:36.593 回答