Firebase de la FCM, le silence des notifications push pour iOS
J'ai un problème avec le silence des notifications sur iOS.
Quand mon application est en arrière plan, je ne reçois pas de notification silencieuse envoyé par la FCM. Mais si j'essaie de l'envoyer directement à l'APN, la notification est reçue avec succès.
C'est le JSON envoyé à la FCM:
{
"to" : "<token>",
"priority": "high",
"content_available": true,
"data" : {
"<key>" : "<string>",
"<key2>" : "<string>"
}
}
C'est le JSON envoyé directement à l'APN:
{
"aps": {
"content-available": 1
},
"<key>": "<string>",
"<key>": "<string>"
}
J'ai déjà essayé de supprimer la "priorité" de la clé car j'ai vu quelqu'un dire que je ne devrais pas donner une priorité si l' "content_available" est déjà défini. Il n'a pas de travail.
- J'ai "Notifications Push" est activée dans XCode > les Capacités.
- J'ai à Distance "notifications" est cochée dans le Fond Modes dans XCode > les Capacités.
- La FCM les notifications fonctionnent très bien lorsque l'application est au premier plan et, parfois, lorsque l'application est en arrière-plan.
Vous devez vous connecter pour publier un commentaire.
Supprimer "notification" valeur de la clé de la paire et d'ajouter "content_available": true
Il ressemblera à ceci
Cela devrait le faire, en silence, un APN et vous avez besoin pour gérer avec correspondant APNS méthode du délégué.
Vous aurez besoin pour gérer ce par le biais de délégués
Consultez cette firebase la documentation pour plus de détails: https://firebase.google.com/docs/cloud-messaging/concept-options
J'ai trouvé une solution de contournement. J'ai mis une valeur vide pour "son" dans "notification" et le silence notifications, même lorsque l'application est en arrière-plan.
Mon intuition est que Apple ne permet pas le silence des notifications d'une " haute priorité et en quelque sorte "notification": {"audio": ""} astuces de l'APN que cette notification n'est pas silencieux.
Je travaillais sur Firebase silencieux de notification push à l'aide de nodejs. Quand j'ai essayé le code ci-dessous, son travail a été très bien. Quand j'étais en ajoutant "priorité": "haute" et "content_available": true, il était en train de donner d'erreur ci-dessous.
Veuillez suivre les documentation pour le côté serveur et rendent l'installation de json comme expliqué sur le document. J'ai affronté similaires problème plus tôt et a résolu le problème d'aller dans cette doc.
content_available = vrai et le corps, titre vide de la tâche.