L'app è configurata per ricevere gli aggiornamenti di posizione mentre è in background in modo da mantenere l'app attiva e gli aggiornamenti vengono ricevuti correttamente quando l'app è in background.Come ricevere le notifiche di Darwin quando l'app è in background
Anche le notifiche Darwin sono state configurate e vengono ricevute solo quando l'app è l'app corrente in primo piano. Non appena l'app viene messa in background, smette di ricevere le notifiche di Darwin.
Qualche idea su come ricevere le notifiche Darwin mentre l'app è in background?
Frammenti di codice di seguito.
costruzione App in Swift2
in appdeligate
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)
in viewcontroller
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
//locationManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
hai provato a attivare la modalità in background 'Aggiornamenti posizione 'e controllare se il metodo delegate' locationManager: didUpdateLocations: 'è chiamato –
@ Rich16 hai mai funzionato? E se sì, funziona ancora su iOS 10? – simonthumper