繁体   English   中英

当app在后台时,我可以将用户的当前位置发送到服务器吗?

[英]Can I send user's current location to server, when app is in background?

当app在后台时,我可以将用户的当前位置发送到服务器吗? 例如:在我的应用程序中,我想每隔2分钟存储用户的当前位置,然后将其当前位置发送到服务器。 我可以在应用程序处于后台时执行此操作吗? 我可以在后台模式下向服务器发送位置更新吗?

你可以从iOS7开始。 你基本上需要要求两种背景状态:位置和提取。
在您的应用程序中,您将注册gps位置更改,并在每次调用回调时存储它们。 然后你会注册:

 application:performFetchWithCompletionHandler:

这通常用于在后台下载文件,但您可以使用它将数据发布到Web服务器。 请注意,您无法控制此通话的频率。
要对此进行测试,您可以从Xcode Debug菜单强制iOS模拟器中的获取操作。
我能够以这种方式成功跟踪用户位置。 您可以在Apple文档中找到更多信息,您将在此处找到有关后台获取的教程

我写了一个开源项目,定期从ios设备获取位置(还有android,windows phone和java me手机)。 它在后台运行良好。 我还编写了服务器软件来存储位置并使用谷歌地图显示路线。 该项目完整且有效,并获得麻省理工学院的许可。 它完全符合您的要求:

https://github.com/nickfox/GpsTracker

请务必查看phoneClients目录中的ios,了解我如何定期获取该位置。 ios客户端项目还使用AFNetworking,它可以轻松地允许应用程序使用后台任务从后台向Web服务器发布更新。

在这里介绍它很好: https//developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html#//apple_ref/doc/uid/TP40009497-CH9-SW1

根据授权,您可以在跨越地区时唤醒您的应用。 而不是每两分钟检查一次,当你跨越区域时,通常是首选。 这节省了电池,因为它允许应用程序在大多数时间处于睡眠状态。

此外,似乎是现场: 如何唤醒应用程序

不是我的发展领域,只是谷歌搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM