Система: В моем приложении я использую геозону (мониторинг региона).Всякий раз, когда пользователь входит или выходит из контролируемой области или региона, приложение отображает локальное уведомление, если приложение находится в фоновом режиме или даже закрыто.Это работает отлично.Приложение может отображать локальные уведомления.
Теперь мне также нужно отправить эту информацию (если пользователь находится внутри или за пределами контролируемой области) через HTTP POST-вызов на внутренний сервер приложения.
Проблема: Приложение выполняет вызов API в методах делегатов LocationManager, но иногда это работает, а иногда нет.Кажется, что выполнение кода останавливается случайным образом, если приложение не находится на переднем плане.
Пример кода
// MARK: - Location Manager Delegate
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if region is CLCircularRegion {
showLocalNotification(forRegion: region)// Works
updateUserEntryAPICall(region: region) // Sometimes works
}
}
func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
if region is CLCircularRegion {
showLocalNotification(forRegion: region) // Works
updateUserExitAPICall(region: region) // sometime works
}
}
Я не включил возможность фонового режима в iOS.Тем не менее, приложение может показывать локальные уведомления.Нужно ли включать его, чтобы заставить работать сетевой вызов?
Пожалуйста, помогите.