Ich habe die Firebase-Benachrichtigung in meiner Android-Anwendung implementiert. Wenn meine App ausgeführt wird, wird die Benachrichtigung mit meinem benutzerdefinierten Layout angezeigt. Wenn die Anwendung jedoch nicht ausgeführt wird, wird die Benachrichtigung mit dem Standardlayout angezeigt. Wie kann ich das Benachrichtigungslayout in mein Layout ändern, wenn die Anwendung nicht ausgeführt wird? Außerdem speichere ich freigegebene Einstellungen, damit Benutzer Benachrichtigungen aktivieren können. Wenn die App nicht ausgeführt wird, wird die Benachrichtigung trotzdem angezeigt. Wie kann das erreicht werden?
%Vor%Ihr Problem besteht darin, dass Sie es mit dem Benachrichtigungsfeld verwenden.
Sehen Sie sich diesen Link
anNachrichten mit Benachrichtigungs- und Datennutzinformationen, sowohl im Hintergrund als auch im Vordergrund. In diesem Fall wird die Benachrichtigung an die Systemablage des Geräts gesendet, und die Datennutzlast wird in den Extras mit der Absicht Ihrer Startaktivität geliefert.
Wenn Sie {data:"something"}(data-message)
mit {notification:"something"}(display-message)
verwenden, während sich Ihre App im Hintergrund befindet, wird die Datennutzlast an Extras der Absicht, nicht aber an die onMessageReceived()
-Methode geliefert. Ich nehme an, dass Sie Ihren Code implementieren, um Benachrichtigungen anzuzeigen, also wann Ihre App befindet sich im Vordergrund onMessageReceived()
ist der Auslöser und zeigt die gewünschte Benachrichtigung an, die Sie wollen, aber wenn es nicht onMessageReceived()
ist, erhalten Sie stattdessen trigger und das Android-System wird es mit Ihrer Benachrichtigungsnutzlast behandeln. Sie müssen nur {notification:"something"}(display-message/notification tray)
von Ihrem serverseitigen Code entfernen, um immer onMessageReceived()
zu gewährleisten.
Für alle, die erwähnen, dass onMessageReceived()
immer triggert, egal ob Vordergrund oder Hintergrund, besuchen Sie bitte link
Es gibt zwei Arten von FCM-Nachrichten
Nachrichten, die von der Firebase-Konsole gesendet werden, sind Benachrichtigungsnachricht . Um eine Nachricht in onMessageReceived () zu erhalten, verwenden Sie Datennachricht . Verwenden Sie den folgenden Code auf der Serverseite, um eine Datenbenachrichtigungsnachricht zu senden
%Vor%Referenz Ссылка
Ihr Code wird niemals ausgelöst, wenn Ihre App geschlossen ist oder im Hintergrund ausgeführt wird. Siehe: Firebase-Benachrichtigung
Was Sie tun müssen, ist zu überprüfen, wie die App startet, tippen Sie auf die Benachrichtigung oder tippen Sie auf das Launcher-Symbol. Dazu sollten einige Daten in die Benachrichtigung aufgenommen und dann in der ersten Startaktivität in Ihrer App abgerufen werden. Wenn Sie sie erfolgreich abrufen können, bedeutet dies, dass Ihre App gestartet wird, indem Sie auf die Benachrichtigung tippen. Dann können Sie tun, was Sie tun möchten.
Tags und Links android firebase firebase-cloud-messaging firebase-notifications