Firebase-Benachrichtigungen, wenn die App geschlossen wird

7

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%     
orkun 29.12.2016, 16:06
quelle

3 Antworten

16

Ihr Problem besteht darin, dass Sie es mit dem Benachrichtigungsfeld verwenden.

Sehen Sie sich diesen Link

an
  

Nachrichten 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

    
teck wei 29.12.2016, 16:25
quelle
7

Es gibt zwei Arten von FCM-Nachrichten

  1. Benachrichtigungsnachricht
  2. Datennachricht

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 Ссылка

    
Shshank Bhong 11.02.2017 13:10
quelle
0

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.

    
Freddie 09.01.2018 03:59
quelle