我有一个iOS应用程序,该应用程序启用了用于远程通知的后台模式。整个使用的CLLocationManager
实例是通过requestAlwaysAuthorization
授权的。
我有一个内部逻辑,当从content-available: 1
接收到静默推送通知(didReceiveRemoteNotification
)时触发应用程序,该通知进一步在requestLocation
对象上调用CLLocationManager
。
当应用程序处于前台时,一切正常,并且在收到静默推送后的一段时间内,该应用程序从iOS接收位置更新。
但是,在应用程序处于后台的情况下,didReceiveRemoteNotification
会被正确触发并调用requestLocation
。但是,此后很长一段时间我都没有收到didUpdateLocations
的任何点击。此后,当应用程序再次回到前台时,将通过回调接收位置更新。
因此,看来该应用正等待来到前台来触发位置更新(尽管它是在很久以前才被要求的)。
答案 0 :(得分:0)
请从项目功能中启用“后台模式”,然后启用“位置更新”。启用此功能后,唯一在后台获取更新(不处于终止状态)的配置是将“ allowsBackgroundLocationUpdates”设置为true(您已经完成)。
有关在后台获取位置的更多信息,请遵循: