Je cherche à envoyer une mise à jour d'état à une application, qui peut (ou non), être silencieuse.
Par exemple, si l'utilisateur reçoit un nouveau message d'un de ses amis, je veux envoyer un tel message et pouvoir afficher une alerte sonore.
Mais dans le cas silencieux, je veux que l'utilisateur ne remarque pas une telle notification. il doit être collecté par l'application; Par exemple, si mon utilisateur a deux appareils et qu'il change son nom dans l'un d'eux, je veux envoyer à l'autre appareil (qui est en veille) une mise à jour silencieuse du nom, qui devrait déclencher un changement (être envoyé à l'application) en arrière-plan.
D'après ce que j'ai lu, cela est en fait possible, mais je suis assez confus quant à la façon dont c'est réellement ou comment cela devrait être fait, et il y a parfois des contradictions. En tant que développeur backend, je peux tout faire, mais je dois m'assurer que cela fonctionne pour les gars frontend.
Voici quelques sujets pertinents:
Arrière-plan silencieux Push sur iOS et Android
Notifications push sans alerte
Android:
MISE À JOUR: Nouvelle documentation pour FCM: https://firebase.google.com/docs/ cloud-messaging/concept-options # notifications_and_data_messages
Tant que vous n'incluez pas de balise notification
dans votre charge utile et que vous y mettez une balise data
, vous obtenez une notification silencieuse
cet exemple afficherait une notification
{ "notification": {
"title": "Portugal vs. Denmark",
"text": "5 to 1"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
cela ne montrerait pas une notification
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}
allez ici pour en savoir plus https://developers.google.com/cloud-messaging/concept-options#notifications_and_data_messages
iOS
ajoutez la balise contentAvailable: 1
à votre charge utile json et vous recevez une notification silencieuse
c'est si simple
La réponse acceptée pointe vers une documentation obsolète.
Vous devriez utiliser ceci à la place: documentation Firebase
Le message de données ressemble à ceci:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
Et le message de notification:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}
J'espère que cela fera que d'autres personnes éviteront le mal de tête que j'ai eu de la réponse acceptée.