64 votes

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

Je veux effacer ma notification locale dans la barre de notification. Pour ce faire, je pense pour cela, j'envisage d'utiliser la notification push silencieuse. Je veux donc confirmer quand l'appareil la reçoit et quelles sont les choses que je peux faire avec ?

106voto

Pierre Oleo Points 809

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 lance pas automatiquement votre application si l'utilisateur l'a quittée par la force) et application:didReceiveRemoteNotification:fetchCompletionHandler : sera appelé. Vous avez alors la possibilité de traiter toute 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 secondes.

Pour configurer les notifications silencieuses

Pour prendre en charge les notifications à distance silencieuses, ajoutez la valeur remote-notification au tableau UIBackgroundModes dans votre fichier Info.plist. Pour en savoir plus sur ce tableau, voir 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 une valeur de 1, permet à la notification à distance d'agir comme une 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 un 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 les découvrir la prochaine fois qu'ils ouvrent votre application.

Pour une notification silencieuse, veillez à ce qu'il n'y ait pas d'alerte, de son ou de charge utile de badge dans le dictionnaire aps. Si vous ne suivez pas ces conseils, la notification mal configurée risque d'être bloquée et de ne pas être transmise à l'application en arrière-plan, et au lieu d'être silencieuse, elle s'affichera à l'intention de l'utilisateur

20 votes

Cela réveillerait-il l'application si elle était tuée par la force ?

6 votes

L'utilisateur doit-il encore donner son autorisation pour recevoir ces notifications ?

3 votes

Si l'application est fermée de force, iOS la relancera-t-il pour un push silencieux ?

28voto

Arpit Points 567

Lorsque vous envoyez une notification push silencieuse et que l'application est suspendue, le système se réveille ou lance votre application et la met en état d'exécution en arrière-plan avant d'appeler la méthode, mais si l'application est tué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 d'un délai de 30 secondes pour effectuer le téléchargement ou tout autre type d'opération et appeler le bloc de traitement d'achèvement spécifié. Si le gestionnaire n'est pas appelé à temps, votre application sera suspendue.

Si vous voulez envoyer une notification push silencieuse, votre charge utile de notification doit être comme ceci :

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

2 votes

Je pense que les conseils sont les suivants sound : "" est désormais obsolète - il s'agissait d'un moyen de contourner un bogue dans une ancienne version d'iOS.

0 votes

Donc application:didReceiveRemoteNotification:fetchCompletionHand‌​ler est appelé pour les notifications silencieuses. Qu'est-ce qui est appelé pour les notifications push régulières ?

0 votes

Pouvez-vous répondre à mon dernier commentaire ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X