Maison >développement back-end >tutoriel php >Pourquoi les notifications Firebase Cloud Messaging (FCM) ne sont-elles pas conservées en mode arrière-plan sur iOS ?
Firebase Cloud Messaging (FCM) : notifications non reçues lorsque l'application est en mode arrière-plan sur iOS
FCM permet aux développeurs d'envoyer des notifications push à Appareils iOS et Android. Ce problème se produit lorsque les notifications ne sont pas reçues lorsque l'application est en arrière-plan.
Causes possibles :
Solution :
Code PHP :
Ajoutez les champs suivants à votre charge utile PHP :
Application iOS :
Code PHP mis à jour :
<code class="php"><?php $data = array( 'message' => 'Hello World!', 'body' => 'Hello World!' ); $post = array( 'registration_ids' => $ids, 'data' => $data, 'content_available' => true, 'priority' => 'high', 'notification' => $data ); // ... Remaining code</code>
Application iOS mise à jour :
<code class="objc">// AppDelegate.h @interface AppDelegate : UIResponder <UIApplicationDelegate, GCMReceiverDelegate> // AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // ... // Register for remote notifications if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1) { UIRemoteNotificationType allNotificationTypes = (UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge); [application registerForRemoteNotificationTypes:allNotificationTypes]; } else { UIUserNotificationType allNotificationTypes = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } // ... } - (void)applicationDidEnterBackground:(UIApplication *)application { [[GCMService sharedInstance] disconnect]; _connectedToGCM = NO; } - (void)applicationDidBecomeActive:(UIApplication *)application { [[GCMService sharedInstance] connectWithHandler:^(NSError *error) { // ... }]; } // ...</code>
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!