La mia app funziona perfettamente con le notifiche push se l'app era in background e/o se l'app è in primo piano.Notifica push all'arresto dell'app
Il problema che ho è se l'app è terminata (che forza con doppio clic sul pulsante home, trova l'app e scorri verso l'alto).
Sto usando ios 9 e veloce 2.
In App delegato, didFinishLaunchingWithOptions, lo faccio:
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
Poi:
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
application.registerForRemoteNotifications()
}
Seguito da didRegisterForRemoteNotificationsWithDeviceToken & didFailToRegisterForRemoteNotificationsWithError.
Poi, io sto usando il metodo relativamente nuovo:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {...}
Secondo la documentazione e questo link, come opporsi alla vecchia versione di didReceiveRemoteNotification
, questo metodo viene chiamato se l'applicazione è stata terminata (come opporsi per chiamare will/did finishLaunchingWithOptions).
Tuttavia, se c'era un push (che è stato ricevuto - lo posso vedere sullo schermo) e lancio l'app dopo che è stato terminato, questo metodo non sembra essere chiamato come il codice che gestisce il push (semplicemente postare una notifica in modo che venga raccolto dal rispettivo ViewController) non viene chiamato.
Cosa mi manca? C'è un ulteriore controllo che devo fare in didFinishLaunchingWithOptions? Altrove?