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

问题描述 投票:0回答:2

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

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

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

ios swift location voip
2个回答
0
投票

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.