在我的应用程序处于后台时向我的服务器发送位置信息的iOS 10中的问题

问题描述:

在我的应用程序中,我有要求每隔2分钟将我的位置详细信息发送到公开的Web服务。我怎么能这样做?当我使用NSTimer实现上述操作时,每当应用程序处于后台时,计时器将在3分钟内暂停。我曾尝试使用backgroundExpirationHandler,但该操作在一组时间间隔后未执行。有什么建议么 ?在我的应用程序处于后台时向我的服务器发送位置信息的iOS 10中的问题

注 - 我在info.plist中添加了“位置更新的应用程序注册”。

+0

你不能每两分钟做一次。您可以在“每次获取位置更新”时执行此操作,并且可以跟踪上次更新服务器的时间,并且只有在自上次更新后超过两分钟时才发送更新。如果设备没有移动或位置覆盖不良,那么您在一段时间内可能无法获得更新。 – Paulw11

+0

是否有可能使用定时器或执行选择器每2分钟执行一次该操作? –

+0

不,定时器在您的应用程序暂停时不运行 – Paulw11

所有你需要添加权限在功能后台位置更新的第一,那么你应该调整下你的位置管理器的属性:

self.locationManager.pausesLocationUpdatesAutomatically = NO; 
locationManager.distanceFilter // get location callback after device moves to this defined distance 
locationManager.desiredAccuracy //according to your requirement 

所以每当任何上述所说的调整发生,你会得到回调在你的委托方法中。收到后,您可以更新您的位置的应用程序服务器。

+0

CoreLocation代表将在此时触发。但是当应用程序处于暂停状态时,是否可以执行像调用服务一样的操作来让服务器知道代理中的更新位置? –

+0

实际上,即使您的应用程序被终止,您也可以将应用程序设置为通过位置回调启动。但在这种情况下,2规则将不适用。当一个指示位置移动500米时,你会得到一个回调。 – ankit