Как правильно реализовать CLLocationManager (Основной поток, координаты, обновления местоположения) - PullRequest
0 голосов
/ 05 февраля 2019

Я изо всех сил пытаюсь найти где-нибудь правильную реализацию CLLocationManager.Пожалуйста, кто-нибудь может предложить подход, который учитывает все нижеприведенное:

  • Только запрашивать разрешение только тогда, когда это необходимо, а не при первоначальной установке / аутентификации приложения.
  • Запуск CLLocationManager наОсновная тема.Без этого я получаю предупреждение в консоли, многие реализации онлайн не учитывают это.
  • Запрос разрешений не инициируется в viewDidLoad ().Это представляет всплывающее окно, но сразу же закрывает его, как только представление завершает загрузку.
  • Доступ к функциям делегата - опять же, это зависит от запуска CLLocationManager в главном потоке.

Мой текущий рабочий процесс: -Успешная проверка подлинности (выполнено) - пользователь направляется в табличное представление (выполнено) - запрашивает у пользователя разрешение на доступ к его местоположению GPS - добавляет прослушиватель, чтобы зафиксировать, какой уровень разрешений выбирает пользователь.- Перенаправьте пользователя на экран предупреждения, если пользователь выбрал не разрешать местоположение.

Следующие шаги (чего я не могу достичь): - Если «Когда используется» или «Всегда разрешать», тонемедленно обновите табличное представление новыми данными.- При следующем запуске приложения не нужно проходить вышеуказанный рабочий процесс, поскольку пользователь теперь выбрал уровень разрешений.- Запустить отслеживание местоположения и загрузить данные из API

В идеале я бы также знал, когда местоположение пользователей изменилось на расстояние X, чтобы я мог обновить данные снова, если они будут в движении.

Любая помощь очень ценится.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...