Heim >Backend-Entwicklung >PHP-Tutorial >Warum werden Firebase Cloud Messaging (FCM)-Benachrichtigungen unter iOS nicht im Hintergrundmodus beibehalten?
Firebase Cloud Messaging (FCM): Benachrichtigungen werden nicht empfangen, wenn sich die App unter iOS im Hintergrundmodus befindet
FCM ermöglicht Entwicklern das Senden von Push-Benachrichtigungen an iOS- und Android-Geräte. Dieses Problem tritt auf, wenn Benachrichtigungen nicht empfangen werden, während die App im Hintergrund läuft.
Mögliche Ursachen:
Lösung:
PHP-Code:
Fügen Sie die folgenden Felder zu Ihrer PHP-Nutzlast hinzu:
iOS-Anwendung:
Aktualisierter PHP-Code :
<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>
Aktualisierte iOS-Anwendung:
<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>
Hinweis:
Das obige ist der detaillierte Inhalt vonWarum werden Firebase Cloud Messaging (FCM)-Benachrichtigungen unter iOS nicht im Hintergrundmodus beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!