2016-04-21 21 views
5

App konfiguriert ist Standort-Updates zu erhalten, während im Hintergrund, um die App aktiv und die Updates zu halten ist erfolgreich empfangen, wenn App im Hintergrund ist.Wie Darwin Benachrichtigungen erhalten, wenn App im Hintergrund ist

Darwin Benachrichtigungen ist auch konfiguriert und werden nur dann empfangen, wenn die Anwendung die aktuelle Anwendung im Vordergrund ist. Sobald die App im Hintergrund angezeigt wird, werden keine Darwin-Benachrichtigungen mehr empfangen.

Irgendwelche Gedanken darüber, wie die Darwin Benachrichtigungen zu empfangen, während die App im Hintergrund?

Codeschnipsel unten.

Gebäude 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() 
+0

haben Sie versucht, den Hintergrundmodus 'Location updates' zu aktivieren und zu überprüfen, ob die Delegate-Methode' locationManager: didUpdateLocations: ' –

+0

@ Rich16 heißt. Haben Sie das jemals funktioniert? Und wenn ja, funktioniert es immer noch auf iOS 10? – simonthumper

Antwort

0

Stellen Sie sicher, dass die Location updates Fähigkeit in Background Modes aktiviert haben.

Location updates capability

Dies ermöglicht die App Standortänderungen im Hintergrund und gehen Sie mit Ihrer Logik zu empfangen. Eine große Bibliothek für diese Art von Funktionalität ist INTULocationManager.