Как продолжить отслеживание местоположения после перезагрузки телефона пользователем? - PullRequest
0 голосов
/ 24 августа 2018

Мое приложение должно опубликовать данные о местоположении в моем бэкэнде.Я установил разрешения для местоположения на always и установил pausesLocationUpdatesAutomatically на false для CLLocationManager, и мне нужно продолжать отслеживать местоположение телефонов, даже если приложение находится в фоновом режиме или после перезагрузки телефона.

Я могу заставить его работать, когда приложение находится в фоновом режиме.Но он перестает работать при перезагрузке телефона.

Как я могу это сделать?

Кстати, я знаю

1 Ответ

0 голосов
/ 24 августа 2018

Это ХОРОШО задокументировано в документации Apple.Только если диспетчер местоположений запущен с «startMonitoringSignificantLocationChanges», вы можете получить его.

Так, например:

1) в делегате приложения запустите одноэлементный 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...