Swift - 查找附近运行应用程序的其他用户
Posted
技术标签:
【中文标题】Swift - 查找附近运行应用程序的其他用户【英文标题】:Swift - Find other users running app nearby 【发布时间】:2015-08-02 05:47:11 【问题描述】:需要一些逻辑方面的帮助。我在应用启动时将我的应用用户的位置信息(纬度、经度)存储在数据库中(并在应用使用时定期更新)。
我的应用程序的一个主要功能是查找附近当前也在运行该应用程序的用户。
仅在数据库中查询邻近范围内的“附近用户”是不够的,因为我还需要他们运行应用程序。
我不确定如何“知道”用户何时运行应用程序与 5 分钟前使用我的应用程序(记录其纬度/经度)然后关闭应用程序的用户。
看到类似的问题(特定于 android),但没有一个真正涉及“活跃”用户。
(目前使用 Swift 编码,使用 php 作为我的服务器端语言)
【问题讨论】:
如果您记录时间戳和坐标,您将能够判断位置是否是最新的以及运行应用程序的用户。 不一定。这将是一个很好的“假设”,但这不是保证。我可以启动应用程序,保存我的坐标,然后立即关闭应用程序。我会有一个最近的时间戳,但不会是活跃用户(我的屏幕上的应用程序)。 【参考方案1】:您可以在 AppDelegate 中使用以下方法来管理状态,然后根据状态更改,您可以执行查询或删除有资格找到的用户。
func applicationWillResignActive(application: UIApplication)
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
func applicationDidEnterBackground(application: UIApplication)
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
func applicationWillEnterForeground(application: UIApplication)
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
func applicationDidBecomeActive(application: UIApplication)
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
func applicationWillTerminate(application: UIApplication)
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
// Saves changes in the application's managed object context before the application terminates.
【讨论】:
太棒了@thefreelement!看起来我会在 applicationDidBecomeActive 函数中对“附近的用户”进行数据库调用。 当然可以,您也可以管理他们何时不再符合条件。 我认为这让我现在走上了正轨。在“非活动”函数中,我将调用一个 PHP 脚本,从数据库中的“活动用户”表中删除用户。在活动功能中,我将添加它们。这应该会给我一个很好的活跃用户列表,然后我可以用它来查找我的“位置”表。以上是关于Swift - 查找附近运行应用程序的其他用户的主要内容,如果未能解决你的问题,请参考以下文章