У меня приложение для iOS, в котором включен фоновый режим для удаленных уведомлений. Используемый везде экземпляр CLLocationManager
авторизуется через requestAlwaysAuthorization
.
У меня есть внутренняя логика для запуска приложения при получении тихих push-уведомлений (content-available: 1
) от didReceiveRemoteNotification
, что дополнительно вызывает requestLocation
для объекта CLLocationManager
.
Когда приложение находится на переднем плане, все работает хорошо, и приложение получает обновление местоположения от iOS в течение некоторого времени после получения тихого нажатия.
Но в случае, когда приложение находится в фоновом режиме, didReceiveRemoteNotification
правильно запускается и вызывается requestLocation
. Но я не получаю никакого удара по didUpdateLocations
довольно долго после этого. После этого, когда приложение снова возвращается на передний план, обновление местоположения принимается с помощью обратного вызова.
Таким образом, похоже, что приложение ожидает выхода на передний план для запуска обновления местоположения (хотя оно было запрошено довольно давно).
- Что может быть логическим обоснованием этого? Или это может относиться к какому-либо устройству (ам) или версии (версиям) для iOS?
- Каким может быть решение этой проблемы?