web-dev-qa-db-fra.com

Qu'est-ce que la notification push silencieuse? Quand l'appareil le reçoit-il?

Je souhaite effacer ma notification locale dans la barre de notification. Pour que cela soit mis en œuvre, je pense utiliser la notification Push silencieuse. Je souhaite donc confirmer quand l'appareil le reçoit et quelles actions puis-je en faire?

49
Suhas Patil

Ils peuvent être utilisés pour informer l'application d'un nouveau contenu sans que l'utilisateur en soit informé. Au lieu d'afficher une alerte de notification, l'application sera réveillée en arrière-plan (iOS ne lancera pas automatiquement votre application si l'utilisateur l'a forcée à quitter) et application: didReceiveRemoteNotification: fetchCompletionHandler: sera appelé. Vous avez ensuite la possibilité de traiter n'importe quelle information de manière transparente pour l'utilisateur:

  • Télécharger du contenu
  • Synchroniser certains éléments,
  • Informer l'utilisateur directement dans l'application lorsqu'il l'ouvre à nouveau

Notez que votre temps est limité à 30 ans.

Pour configurer les notifications silencieuses

Pour prendre en charge les notifications à distance silencieuses, ajoutez la valeur de notification à distance au tableau UIBackgroundModes de votre fichier Info.plist. Pour en savoir plus sur ce tableau, consultez UIBackgroundModes.

<key>UIBackgroundModes</key>
<array>
    <string>remote-notification</string>
</array>

Configuration d'une notification silencieuse

Le dictionnaire aps peut également contenir la propriété content-available. La propriété content-available avec la valeur 1 permet à la notification à distance d'agir en tant que notification silencieuse. Lorsqu'une notification silencieuse arrive, iOS réveille votre application en arrière-plan afin que vous puissiez obtenir de nouvelles données de votre serveur ou effectuer le traitement des informations en arrière-plan. Les utilisateurs ne sont pas informés des informations nouvelles ou modifiées résultant d'une notification silencieuse, mais ils peuvent en savoir plus lors de la prochaine ouverture de votre application.

Pour une notification silencieuse, veillez à ce qu'il n'y ait pas de charge utile d'alerte, de son ou de badge dans le dictionnaire aps. Si vous ne suivez pas ces instructions, la notification configurée de manière incorrecte risque d’être limitée et non transmise à l’application en arrière-plan. Au lieu de rester silencieuse, elle est affichée à l’utilisateur.

83
Pierre Oleo

Lorsque vous envoyez une notification Push silencieuse et si l'application est suspendue, le système réactivera ou lancera votre application et la mettra en arrière-plan avant d'appeler la méthode. Toutefois, si l'application est supprimée manuellement par l'utilisateur, elle ne se réveillera pas.

application: didReceiveRemoteNotification: fetchCompletionHandler:

Cette méthode est appelée lorsque vous envoyez une notification Push silencieuse et que votre application dispose de 30 secondes au maximum pour effectuer le téléchargement ou tout autre type d'opération et appeler le bloc de gestionnaire d'achèvement spécifié. Si le gestionnaire n'est pas appelé à temps, votre application sera suspendue.

Si vous souhaitez envoyer une notification Push silencieuse, votre charge de notification devrait ressembler à ceci:

{
    "aps" = {
        "content-available" : 1,
        "sound" : ""
    };
    // You can add custom key-value pair here...
}
23
Arpit