Moja aplikacja działa poprawnie z powiadomieniami push, jeśli aplikacja była w tle i/lub aplikacja znajduje się na pierwszym planie.Powiadomienia push po zakończeniu aplikacji
Mam problem, jeśli aplikacja zostanie zakończona (co wymuszam dwukrotnym kliknięciem przycisku strony głównej, znajdź aplikację i przesuń w górę).
Używam ios 9 i szybka 2.
w APP delegata didFinishLaunchingWithOptions, robię:
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
Następnie:
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
application.registerForRemoteNotifications()
}
Obserwowani przez didRegisterForRemoteNotificationsWithDeviceToken & didFailToRegisterForRemoteNotificationsWithError.
Następnie używam stosunkowo nową metodę:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {...}
Zgodnie z dokumentacją i tym link, jak sprzeciwiać się do starej wersji didReceiveRemoteNotification
, metoda ta jest wywoływana gdy aplikacja została zakończona (jak sprzeciwiać wywołanie zakończyło się/zakończyło się uruchomieniemWithOptions).
Jednakże, jeśli nastąpiło naciśnięcie (które zostało odebrane - widzę to na ekranie) i uruchamiam aplikację po jej zakończeniu, ta metoda nie wydaje się być wywołana jako kod obsługujący naciśnięcie (po prostu powiadomienie, aby został odebrany przez odpowiedni ViewController) nie zostanie wywołane.
Czego mi brakuje? Czy muszę wykonać dodatkową kontrolę w programie didFinishLaunchingWithOptions? Gdzieś indziej?