Как получать уведомления Дарвина, когда приложение находится в фоновом режиме

Приложение настроено на получение обновлений местоположения в фоновом режиме, чтобы приложение оставалось активным, а обновления успешно принимаются, когда приложение находится в фоновом режиме.

Дарвинские уведомления также были настроены и принимаются только тогда, когда приложение является текущим приложением на переднем плане. Как только приложение помещается в фоновый режим, оно перестает получать уведомления Дарвина.

Есть мысли о том, как получать уведомления Дарвина, пока приложение находится в фоновом режиме?

Фрагменты кода ниже.

Сборка приложения в 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.

Другие вопросы по тегам