2016-11-21 5 views
2

Ich habe eine Anwendung, die sowohl für iOS 10 und iOS 9 ist, und ich muss die Remote-Push-Benachrichtigung verwalten:Push-Benachrichtigung App Hintergrund iOS 9 rasche

für iOS 10 schaffe ich es auf diese Weise mit UNUserNotificationCenter:

@available(iOS 10.0, *) 
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) { 
     print("Foreground push notification") 


    } 

    @available(iOS 10.0, *) 
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) { 

     print("Background push notification") 

    } 

Für iOS 9 ich bin in der Lage nur angekommen Push-Benachrichtigung zu verwalten, wenn App im Vordergrund mit dieser Methode ist:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) { 

     print("arrived push notification in foreground for iOS 9") 
    } 

aber als app ist dies m im Hintergrund ethod wird nicht ausgeführt und ich kann die neue Push-Benachrichtigung nicht verwalten. Können Sie mir helfen?

+0

Wenn sich Ihre App im Hintergrund befindet, werden keine Protokolle gedruckt. Aber die Benachrichtigung wird kommen. Sie können auch nicht zum Haltepunkt gelangen –

Antwort

0

Apple hat Einschränkungen für diese Benachrichtigungen festgelegt ... Kein Block oder keine Funktion einer Anwendung kann ausgeführt werden, wenn sich die Anwendung im Hintergrund befindet ... Zum Beispiel löst eine Drittanbieter-Alarmanwendung den Alarm aufgrund einer Benachrichtigung aus und wird einmal angetippt die Benachrichtigung, dass die Anwendung gestartet wird und die Funktion didreceivenotification ... eingibt, während Android den gesamten Bildschirm anzeigen kann, um den Alarm zu dösen oder zu verwerfen. Apple gibt Ihnen die ganze Macht in der Welt, die Sie tun möchten, wenn Sie sich in Ihrer Anwendung befinden, aber wenn im Hintergrund oder in der Anwendung keine Funktionen ausgeführt oder keine Blockierung ausgeführt werden kann.