Как приложения, такие как Strava, продолжают работать в фоновом режиме на iPhone? - PullRequest
0 голосов
/ 07 декабря 2018

Просто интересно, кто-нибудь знает, как Strava может работать в фоновом режиме на iOS во время тренировок?В настоящее время я создаю приложение iOS на основе определения местоположения, которое должно продолжать работать в фоновом режиме, и я немного растерялся.

За последний месяц я смог создать прототип для Apple Watch, используяHealthKit и HKLiveWorkoutBuilder, но, похоже, я не смогу использовать тот же подход на iPhone, потому что многие классы, которые я использовал на часах, недоступны на телефоне, такие как HKWorkoutSession и HKLiveWorkoutBuilder.

1 Ответ

0 голосов
/ 08 декабря 2018

Эти приложения обычно используют возможности UIBackgroundModes для выполнения любой обработки, когда приложение является фоновым.В частности, фоновый режим, используемый Strava, скорее всего, это Background Location Services.Следует отметить, что Apple контролирует большую часть ресурсов / времени, выделяемых вашей программе, и как только она покидает передний план, она не получает эти ресурсы так же свободно, как при работе на переднем плане.

У меня быловозможность работать с приложением, основанным на службах определения местоположения, которое требовало отслеживания и отправки обновлений местоположения, даже когда оно было установлено на заднем плане, и смогло добиться этого на iOS 8.

В последние годы Apple обновила способ запроса услуг определения местоположения упользователь.Разработчик приложения может указать либо requestAlwaysAuthorization, либо requestWhenInUse.Первый позволит вам реагировать на обновления местоположения, даже если приложение является фоновым.

API-интерфейс CoreLocation довольно гибкий, например, вы можете указать, хотите ли вы реагировать только на небольшие изменения расстояния или на более крупные.

Документация разработчика является довольно надежным справочным материалом, и если выВы хотите узнать больше о фоновых режимах выполнения, которые вы можете сделать здесь:

https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

Для начала работы с CoreLocation хороший ресурс:

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html

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