Как получать уведомления Дарвина, когда приложение находится в фоновом режиме
Приложение настроено на получение обновлений местоположения в фоновом режиме, чтобы приложение оставалось активным, а обновления успешно принимаются, когда приложение находится в фоновом режиме.
Дарвинские уведомления также были настроены и принимаются только тогда, когда приложение является текущим приложением на переднем плане. Как только приложение помещается в фоновый режим, оно перестает получать уведомления Дарвина.
Есть мысли о том, как получать уведомления Дарвина, пока приложение находится в фоновом режиме?
Фрагменты кода ниже.
Сборка приложения в Swift2
в приложении
let callback: @convention(c)
(CFNotificationCenter!, UnsafeMutablePointer<Void>, CFString!, UnsafePointer<Void>, CFDictionary!) -> Void = {
(center, observer, name, object, userInfo) in
//Execute callback code
}
let exCb: CFNotificationCallback = unsafeBitCast(callback, CFNotificationCallback.self)
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),nil ,exCb,"com.apple.springboard.hasBlankedScreen" as CFString,nil ,CFNotificationSuspensionBehavior.DeliverImmediately)
в viewcontroller
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
//locationManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
1 ответ
Убедитесь, что вы активировали Location updates
способность в Background Modes
,
Это позволит вашему приложению получать изменения местоположения в фоновом режиме и продолжать свою логику. Отличная библиотека для такого рода функций - INTULocationManager.