0

J'envoie une notification de mon serveur (Django) à l'aide django-push-notifications par la FCM:Notification reçue, mais aucune icône affichée dans la barre de notification

from push_notifications.models import GCMDevice 
agents_user_ids = [agent.user.id for agent in task.agents.all()] 
devices = GCMDevice.objects.filter(user_id__in=agents_user_ids) 
devices.send_message("You have a new task", title="New Task") 

Je suis en mesure de recevoir les données dans une application mobile (ionique 1.3. 3, AngularJS 1.5.3) en utilisant cordova-plugin-fcm:

FCMPlugin.onNotification((data) => { 
     alert(JSON.stringify(data)); 
    }, function(msg){ 
     console.log("FCM Notification callback registered."); 
    }, function(err){ 
     console.log("FCM Notification callback registration error: " + err); 
    }); 

le problème est aucune notification est affiché dans la barre, pas de vibration, pas de son, ... je l'ai déjà modifié les devices.send_message options à l'aide supplémentaire arg mais rien ne se passe.

Après la documentation de la FCM I modifié manifeste en ajoutant:

<application> 
    ... 
    <service android:name="com.gae.scaffolder.plugin.MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 
    </service> 
    <service android:name="com.gae.scaffolder.plugin.MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 
    <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_stat_ic_notification" /> 
    <meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/colorAccent" /> 
</application> 

Est-il un problème avec la configuration de l'application? avec la façon dont j'envoie la notification du serveur? ou c'est juste les plugins que j'utilise n'affichent rien dans la barre de notifications?

... Dois-je créer la notification manuellement en utilisant les données reçues?

+0

Essayez de réinstaller votre application ou d'effacer les données. –

+0

J'utilise la commande "ionique courir android -c -s" chaque fois que je teste l'application dans l'appareil, donc l'application est réinstallée – juankysmith

Répondre

1

Peut-être deux raisons

  1. est votre application en arrière-plan lors de la réception il? Vérifiez https://firebase.google.com/docs/cloud-messaging/android/receive

  2. Toujours sur la base du lien ci-dessus, seulement dans deux situations, votre appareil affichera automatiquement votre message comme une notification. Le message peut être envoyé à votre application, où votre application devra alors envoyer une notification à l'appareil. Vérifiez https://developer.android.com/training/notify-user/build-notification.html

+0

Tout d'abord, j'essaie de le faire fonctionner avec l'application au premier plan. Suite à vos liens, j'ai inclus les méta-données dans la balise application de mon manifeste sans résultat :( – juankysmith

+0

@juankysmith comme mentionné dans le premier lien, lorsque votre application est en premier plan, le message sera transmis directement à votre méthode onMessageReceived() dans Votre classe étend FirebaseMessagingService Vous devez traiter le message et générer une notification dans votre propre code en utilisant le second lien En d'autres termes, lorsque vous utilisez FCM et que l'application est au premier plan, AUCUNE notification ne s'affichera automatiquement, vous devez le coder. – katie