用户重启手机后如何继续跟踪位置?

时间:2018-08-24 08:33:20

标签: ios core-location ios-background-mode

我的应用程序需要将位置数据发布到我的后端。我已将位置权限设置为always,并将pausesLocationUpdatesAutomatically的{​​{1}}设置为false,并且即使应用程序在后台或启动后,也需要继续跟踪电话位置手机重新启动。

当应用程序处于后台模式时,我可以使其工作。但是,当手机重新启动后,它将停止工作。

我该怎么做?

我知道

1 个答案:

答案 0 :(得分:1)

Apple文档对此进行了很好的记录。 仅当位置管理器以“ startMonitoringSignificantLocationChanges”启动时,您才能获取它。

例如:

1)在App委托中启动单例GeoLocationManager.shared.locationManager,因此,如果重新启动将运行。

2)在回叫中:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
{

更新您的位置

如果崩溃,它将重新进入。 我认为您已经设置了il plist:

<key>UIBackgroundModes</key>
<array>
    <string>location</string>
</array>

注意:由于ios9是强制性的,因此添加了用于隐私的代码。

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
...
}

在plist中:

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>