cordova, Firebase, FCM Plugin – Ne pas afficher les notifications dans la barre de notification sur iOS

J'utilise ce plugin avec cordova: cordova-plugin-fcm pour que les notifications fonctionnent.

Cela fonctionne bien sur Android.

Le problème est avec iOS, lorsque l'application est au premier plan, les notifications arrivent. Mais lorsque l'application est fermée ou en arrière-plan, la notification ne s'affiche pas dans la barre de notification, mais lorsque j'ouvre l'application, je peux voir la notification arriver et le popup que je génère, s'ouvre.

Mais j'ai vraiment besoin de notification pour montrer dans l'écran de locking et dans la barre de notification.

Voici ce que j'envoie à l'API Firebase:

/ POST to https://fcm.googleapis.com/fcm/send

Et dans le corps, j'envoie ceci:

 { "to" : <USER_TOKEN>, "alert":"Test", "notification": { "alert":"Test test", "title": "Notification test", "text": "Testing notification text" }, "priority": 10, "content_available": true } 

J'ai aussi essayé avec "priority": "high" et get les mêmes résultats.

La notification arrive, mais elle ne s'affiche que lorsque j'ouvre l'application. Je ne l'obtiens même pas dans la barre de notification ou l'écran de locking.

J'ai aussi essayé d'append la propriété "aps" dans le corps, avec toutes les informations à l'intérieur .. ne fonctionne pas.

J'espère que quelqu'un peut jeter un peu de lumière dans ce ..

PS: iOS v10.1.1

PS2: Fonctionne bien sur tous les appareils Android.

J'ai déjà lu quelques réponses de la communauté mais ne semble pas fonctionner:

L'API Firebase n'envoie pas de notifications push lors de l'utilisation de l'API

iOS ne recevant pas la notification Push Firebase envoyée via l'API

Merci pour votre time.

avez-vous téléchargé votre certificate APN de développement sur console.firebase.google.com,

Téléchargez votre certificate APNs à Firebase. Si vous ne possédez pas encore de certificate APN, reportez-vous à la section Provisionnement des certificates SSL APN.

Dans votre projet, dans la console Firebase, select l'icône représentant une roue dentée, Paramètres du projet, puis l'onglet Cloud Messaging. Sélectionnez le button Télécharger le certificate pour votre certificate de développement, votre certificate de production ou les deux. Au less un est requirejs. Pour chaque certificate, select le file .p12 et indiquez le mot de passe, le cas échéant. Assurez-vous que l'ID de l'set de ce certificate correspond à l'ID de l'set de votre application. Sélectionnez Sauvegarder.

vous pouvez consulter le lien https://firebase.google.com/docs/cloud-messaging/ios/client

J'ai eu le même problème, Tout d'abord, vous devez utiliser "corps" au lieu de "text"; Pour la priorité, vous devriez toujours utiliser "high" ou "normal", pour les pushnotifications la valeur par défaut devrait être haute. Si vous oubliez d'utiliser les touches "title" et "body" dans l'object de notification de votre string Json, iOS ne va pas append la notification à la list des notificatios apparemment.

Si vous voulez des valeurs personnalisées, ajoutez un object de données avec des valeurs personnalisées. comme ça:

  "data":{ "data1":"value1", "data2":"value2" } 

Alors essayez quelque chose comme ceci:

 { "to" : <USER_TOKEN>, //or /topics/<topicname> or /topics/all" "notification": { "title": "Notification test", "body": "Testing notification text" }, "priority": high, "sound":"default", //not using this one wont make your iOS device use sound "click_action":"FCM_PLUGIN_ACTIVITY", "icon":"fcm_push_icon" } 

Combiné avec l'object de données:

  { "to" : <USER_TOKEN>, //or /topics/<topicname> or /topics/all" "notification": { "title": "Notification test", "body": "Testing notification text" }, "data":{ "data1":"value1", "data2":"value2" }, "priority": high, "sound":"default", //not using this one wont make your iOS device use sound "click_action":"FCM_PLUGIN_ACTIVITY", "icon":"fcm_push_icon" } 

J'espère que cela aide, ça a fait pour moi