Jest problem z iOS i komunikatów danych. Stwierdza here że
iOS, FCM przechowuje komunikat i dostarcza ją tylko wtedy, gdy aplikacja jest w pierwszym planie i ustanowieniu połączenia FCM.
Tak więc MUSI być praca dookoła. Coś podobnego do kopalni:
Send 2 powiadomień push:
1) Normalny obudzić użytkowników telefonów/zainicjować gdy aplikacja jest w tle przy użyciu tego kodu:
{
"to" : "/topics/yourTopicName",
"notification" : {
"priority" : "Normal",
"body" : "Notification Body like: Hey! There something new in the app!",
"title" : "Your App Title (for example)",
"sound" : "Default",
"icon" : "thisIsOptional"
}
}
2) Powiadomienie o danych, które zostanie uruchomione, gdy użytkownik otworzy aplikację
{
"to" : "/topics/yourTopicName",
"data" : {
"yourData" : "1",
"someMoreOfYourData" : "This is somehow the only workaround I've come up with."
}
}
, a więc, zgodnie z metodą - (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage
obsługiwać dane:
- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
// Print full message
NSLog(@"%@", remoteMessage.appData);
//
//*** ABOUT remoteMessage.appData ***//
// remoteMessage.appData is a Key:Value dictionary
// (data you sent with second/data notification)
// so it's up to you what will it be and how will the
// app respond when it comes to foreground.
}
będę też zostawić ten kod do uruchomienia powiadomienia wewnątrz aplikacji (tworzenie lokalnych powiadomienia), ponieważ można go użyć do stworzenia wyciszony transparent, może, więc użytkownik zostanie poinformowany ponownie, nawet gdy aplikacja chodzi o planie:
NSDictionary *userInfo = remoteMessage.appData;
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.userInfo = userInfo;
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.alertBody = userInfo[@"yourBodyKey"];
localNotification.alertTitle = userInfo[@"yourTitleKey"];
localNotification.fireDate = [NSDate date];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
To spowoduje zgłoszenie samej sekundzie aplikacja przychodzi na pierwszym planie.
Prawdopodobny duplikat [Brak odbioru APN, gdy nie ma aplikacji] (http://stackoverflow.com/questions/40295475/not-receiving-apns-when-out-of-app) – Chris
Pytanie, do którego się odwołałeś nie ma odpowiedzi i jest sformułowane inaczej. –