Je vois un comportement très étrange des serveurs Apple Push Notification Server lorsque l'iPhone destinataire est éteint. Voici mon scénario:Comportement de notification push étrange Apple lorsque l'iPhone de réception est éteint
-Envoyer la notification push A à Apple. En quelques secondes, une fenêtre de notification push s'affiche comme prévu sur l'iPhone.
-Envoyer une notification vide à Apple pour annuler le précédent (la notification précédente est inutile après environ 10 secondes, c'est pourquoi je veux m'en débarrasser). Rien affiché sur l'iPhone.
-Éteignez complètement l'iPhone (pas de veille, il est éteint).
-Envoyer la notification push B à Apple. Attendez 10 secondes.
-Envoyer une notification vide à Apple pour annuler le précédent. Attendez 10 secondes.
-Envoyer la notification push C à Apple. Attendez 10 secondes.
-Envoyer une notification vide à Apple pour annuler le précédent. Attendez 30 secondes.
-Activer l'iPhone.
-Après environ 60 secondes, un message contextuel de notification push s'affiche pour la notification B sur l'iPhone.
-Notification C ne semble jamais arriver.
Ceci est très étrange! En lisant les documents Apple, je n'attendais que la dernière notification push à envoyer. J'espérais que ma notification vide serait envoyée, je ne m'attendais certainement pas à recevoir la plus ancienne notification push non envoyée!
Les documents d'Apple disent:
Push d'Apple Service de notification comprend une qualité par défaut du composant de service (QoS) qui effectue une fonction de stockage et de l'avant. Si APNS tente de délivrer une notification mais que l'appareil est hors ligne, la QoS stocke la notification. Il ne conserve qu'une seule notification par application sur un périphérique: la dernière notification reçue d'un fournisseur pour cette application. Lorsque le périphérique hors connexion se reconnecte ultérieurement, la QoS transmet la notification stockée à l'appareil. La QoS conserve une notification pendant une période limitée avant de la supprimer.
Quelqu'un a vu ce comportement? Suis-je juste frapper une sorte de bug de fenêtre de synchronisation? Que devrait-il se passer?
Mises à jour:
Je -Si éteindre le téléphone et attendre 5 à 15 minutes avant d'envoyer des notifications push alors ce problème ne se produit pas. Dans ce cas, lorsque je mets le téléphone sous tension, je ne vois aucune fenêtre de notification, bien que je ne sois pas sûr que cela soit dû au fait qu'Apple ait laissé tomber la notification ou que sa 'file d'attente' fonctionne correctement. du premier avec le popup).
-J'étudierai plus loin en mettant un APNsLogging.mobileconfig sur l'iPhone pour voir quelles notifications il a reçues.
-La désactivation du Wi-Fi ne semble pas modifier les résultats.
-J'ai soulevé un rapport de bug avec Apple pour ce scénario.
Que voulez-vous dire annuler le précédent? Vous ne pouvez pas annuler une notification après son envoi. – erotsppa
Les nouvelles notifications push effacent les notifications précédentes sur l'iPhone qui les reçoit. Vous pouvez donc annuler une notification précédente en envoyant une nouvelle notification vide sans message contextuel. Cela fonctionne principalement bien pour moi. –