http背景限制是否允许http?

Pau*_*ulG 1 background-process multitasking cllocationmanager ios

我想在我的应用程序后台运行一个进程,该进程获取用户当前的纬度/经度(每隔5分钟)并通过Web服务调用将其报告给我们的服务器.当我向info.plist添加所需的背景模式时,我有以下选项:

-App plays audio

-App registers for location updates

-App provides Voice over IP services

现在在我的情况下,我显然需要在列表上的第二个选择,但一旦我有位置我可以用它做什么?我可以在后台进行Web服务调用吗?还有什么其他限制?

非常感谢!

Bjö*_*ser 6

当应用程序处于后台模式时,您无法以通常的方式建立HTTP连接.您必须设置后台任务,将位置更新发送到您的服务器.

我找到了一个简短的教程,涵盖了你正在寻找的东西(我没有测试过代码).

这是它如何工作的摘要
当您的应用程序在后台运行并且发生位置更改时,iOS会唤醒您的应用程序并调用locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationCLLocationManager 的委托方法.发生这种情况时,请检查您的应用程序是否在后台运行,如果是,则设置后台任务.然后后台任务应该将数据发送到您的服务器.

限制

  • 文档是不清楚多少时间,在这样的背景任务可能需要完成,但我稍微记得那是最大的东西约10分钟.

  • 据我所知,当您的应用程序在后台运行时,您无法更新UI