因此,当我厌倦了,继续我的PHP项目FastTalk时,我陷入了离线和在线功能。基本上我到目前为止所做的是,每当客户端使用Web应用程序(保存到桌面)时,它将更新MySQL数据库中的在线行。但问题是,当客户端使用主屏幕按钮或锁定按钮退出Web应用程序时,我会陷入困境。我基本上需要知道当客户端离开Web应用程序时是否有任何方法可以运行PHP函数。即使它仍然在后台运行。这是我尝试举例的一些截图:
修改 我现在已经创建了一个有效的JavaScript 1分钟检查,它将每1分钟将MySQL行更新为true,因为如果客户端在网站上,JavaScript将始终运行。但是,当客户端不再运行间隔时,如何将行设置为false?
答案 0 :(得分:0)
在AppDelegate.m文件中
有一些名为DidEnterBackground和WillTerminate的方法 当您最小化应用程序时,应用程序将调用DidEnterBackground,并在您杀死应用程序时调用WillTerminate。
希望它能解决
答案 1 :(得分:0)
唯一的防弹方法是让您的应用定期向服务器发送心跳请求,以表明它仍然在线。保留数据库中最后一次心跳的时间戳,并在用户自给定阈值后未发送心跳时将其视为脱机。
AppDelegate方法在这里没用,因为当应用程序即将终止时,您没有足够的时间来完成HTTP请求。此外,您的用户可能会失去她的互联网连接,在这种情况下,这是一个鸡和蛋的问题。
答案 2 :(得分:0)
我终于成功使用JavaScript来检查客户端何时退出.. 以下是其他人遇到同样问题的代码:
window.onbeforeunload = logout;
function logout() {
$.get("index.php?offline");
}