快速将用户的当前位置发送到服务器,而应用被杀死

时间:2019-12-17 14:08:23

标签: ios swift location voip

我正在迅速创建一个 Taxi Driver 应用程序。我需要每30秒将驱动程序的当前位置发送到服务器,即使应用被杀死。当应用程序处于前台或后台状态时,我找到了解决方案。但是当应用被杀死时,我无法将位置发送到服务器。我尝试了VOIP推送 startMonitoringSignificantLocationChanges

  1. 应用被杀死并且每30秒收到一次 VOIP 推送时,我可以获得用户的位置,但是,我无法调用API并将位置发送给服务器。任何人都可以找到在应用程序被杀死时将数据发送到服务器的解决方案吗?

  2. 在应用被终止时使用 startMonitoringSignificantLocationChanges 我可以将位置发送到服务器,但是在用户开车时需要5到10分钟才能获得用户的更新位置。我从一个地点到另一地点旅行了很多次。 Apple文档告诉用户,当用户的位置发生较大变化(例如500米)时,位置会更新。但实际上,它的行驶距离可更新5公里到7公里。谁能找到解决方案?

2 个答案:

答案 0 :(得分:0)

应用刷新是个好主意,但iOS在后台仅允许35到40秒在后台唤醒您的应用,因此您应该在这段时间内调用函数。.这是基于位置的后台任务的好示例{{3 }}

and and and apple文件说是否使用静默推送通知。但是,如果用户强制退出应用程序,系统不会自动启动您的应用程序。请参阅Usage

答案 1 :(得分:0)

“如果您的应用被用户或系统终止,则当新的位置更新到来时,系统不会自动重新启动您的应用。用户必须先明确重新启动您的应用,然后才能继续发送位置更新。自动重新启动应用程序的唯一方法是使用区域监视或重大更改位置服务。但是,当用户全局或专门为您的应用禁用“后台应用刷新”设置时,系统不会针对任何位置事件(包括重大更改或区域监视事件)重新启动您的应用。此外,关闭“后台应用刷新”功能后,即使在前台,您的应用也不会收到重大更改或区域监视事件。” more...