Maison >développement back-end >tutoriel php >Pourquoi les notifications GCM ne sont-elles pas reçues en mode arrière-plan iOS ?

Pourquoi les notifications GCM ne sont-elles pas reçues en mode arrière-plan iOS ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 15:27:02752parcourir

Why Are GCM Notifications Not Being Received in iOS Background Mode?

Notifications GCM non reçues en mode arrière-plan iOS

Les notifications push envoyées par GCM peuvent ne pas être reçues par les appareils iOS lorsque l'application est dans le arrière-plan. Cela peut être attribué à plusieurs facteurs. Voici une analyse du problème et de sa résolution :

Problème 1 : les notifications ne sont pas reçues en arrière-plan

  • Les notifications GCM sont généralement envoyées sous forme de messages de données aux appareils iOS. . Ces messages ne sont pas affichés dans la zone de notification sauf si l'application est au premier plan.
  • Pour résoudre ce problème, vous pouvez modifier votre script PHP pour envoyer des notifications push sous forme de messages contenu disponible. Ces messages donnent la priorité à la livraison même lorsque l'application est en arrière-plan.

Problème 2 : Erreur "Impossible de se connecter à GCM"

  • Lors de la tentative pour recevoir des notifications en arrière-plan, vous recevez un message d'erreur indiquant "Impossible de se connecter à GCM". Cette erreur se produit car le service GCM doit être en cours d'exécution pour recevoir des messages.
  • Assurez-vous d'avoir implémenté une gestion de connexion appropriée dans votre fichier AppDelegate.m, en particulier "applicationDidBecomeActive" et "applicationDidEnterBackground" méthodes, pour établir et maintenir une connexion à GCM.

Solution de code PHP

Ajoutez les modifications suivantes à votre script PHP :

<code class="php">$data = array(
    'message' => 'Hello World!',
    'body' => 'Hello World!',
);

$post = array(
    'registration_ids' => $ids,
    'data' => $data,
    'content_available' => true, // To trigger when iOS app is in background
    'priority' => 'high',
    'notification' => $data, // Send notification payload
);</code>

Solution de code iOS

Aucune modification n'est requise côté iOS, mais assurez-vous d'avoir suivi les instructions fournies par la documentation GCM pour implémenter correctement le service GCM.

Conseils supplémentaires

  • Utilisez un service de test de notifications push pour vérifier que vos messages sont correctement formés et livrés.
  • Vérifiez si votre appareil iOS a accordé l'autorisation pour recevoir des notifications push.
  • Si vous rencontrez d'autres problèmes, reportez-vous à la documentation GCM ou demandez de l'aide sur les forums de la communauté GCM.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn