Ich sende Firebase-Benachrichtigungen über meinen eigenen Webservice mit PHP wie unten.
%Vor%1.Nachrichten kommen, wenn App im Vordergrund und im Hintergrund ohne irgendwelche Probleme ist, aber wenn ich App aus dem letzten Tray entfernt, dann Benachrichtigungen nicht kommen, muss ich mit jeder Lösung dafür umgehen? (Wie Whatsup Benachrichtigungen zeigen alle Szenarien, selbst wenn ich diese App von den Einstellungen zwingt)
2.Nach Erhalt der Benachrichtigung von "onMessageReceived", wie diese Nachricht, Body-Inhalt an meine Aktivität / Fragmente zu übergeben?
3.In einigen Fällen möchte ich eine Benachrichtigung an alle senden, anstatt alle Token zum Array hinzuzufügen. jede andere Art und Weise zu behandeln wie "Senden an ALLES" so etwas?
%Vor%Fehlgeschlagene Geräte: (Benachrichtigungen werden nicht angezeigt , nachdem sie aus dem letzten Fach entfernt wurden)
Erfolgreiche Geräte: (Benachrichtigungen werden angezeigt, nachdem sie aus dem letzten Fach entfernt wurden)
1. Benachrichtigungen kommen, wenn App im Vordergrund und Hintergrund ohne Probleme ist, aber wenn ich App aus dem letzten Fach dann entfernt habe Benachrichtigungen kommen nicht, ich muss mit jeder Lösung umgehen Dies ? (Wie Whatsup Benachrichtigungen zeigen alle Szenarien sogar ich Erzwingen Sie diese App von den Einstellungen)
Gemäß Ihrem Code müssen Sie eine Null-Zeiger-Ausnahme auf remoteMessage.getNotification().getBody()
erhalten, da Sie keine Benachrichtigung senden, stattdessen senden Sie Daten-Payload von Ihrer Curl-Anfrage. Laut meiner persönlichen Erfahrung ist das gerade erwähnte Problem vor allem in Android Kitkat oder unter Geräten zu sehen. Auf Lollipop oder über Firebase scheint Push zu funktionieren.
2.Nach Erhalt der Benachrichtigung von "onMessageReceived", wie diese Nachricht, Body-Inhalt an meine Aktivität / Fragmente zu übergeben?
Sie können eine Übertragung von onMessageReceived()
durchführen und einen Braodcast-Empfänger in Ihrer Aktivität registrieren und die Daten in Ihrer Übertragungsabsicht senden. Beispielcode:
3.In einigen Fällen möchte ich eine Benachrichtigung an alle senden, anstatt alle Token zum Array hinzuzufügen. jede andere Art zu behandeln wie "sende an ALLE" so etwas?
In der Firebase-API gibt es nichts Besseres als "An ALLE senden". Die einzige Möglichkeit besteht darin, die Firebase-Konsole zu verwenden, die Probleme wie das weiße Symbol hat und die benutzerdefinierten Parameter Ihrer Benachrichtigung rippt.
>Ich hatte Probleme mit FCM auf genauem Mi Phone und Huawei Telefon! Es stellte sich heraus, dass dies kein Problem mit FCM oder Ihrer App war, sondern auf ihrer Geräteebene.
Sie verfügen über App-Einstellungen auf Geräteebene, die Benachrichtigungen oder sogar die Aktivierungssperre deaktivieren, sodass onMessageReceived () nicht ausgelöst wird, wenn die Nachricht eintrifft. Nachdem ich die Einstellungen geändert habe (hauptsächlich Benachrichtigungen zulassen und die Akku-Optimierung für meine App deaktivieren), funktioniert alles gut!
Siehe Firebase-Cloud-Messaging wurde nicht empfangen, wenn die App im Hintergrund läuft .
Dieses Problem benötigt eine Back-End-Implementierung. Lassen Sie mich diskutieren, wie ich diesen Mangel überwinde.
Wir kennen den Aktivitätszyklus. Nach dem Destroy-Aufruf rufe ich einen Dienst vom Back-End an, der mein Client-Token abmeldet. Alle eingehenden Nachrichten werden nun zur Zustellung in die Warteschlange gestellt, da das Token für den Zielmandanten nicht registriert ist.
Wenn ich also die Anwendung zurückbringe, rufe ich einen Backend-Service an, der meinen Kunden registriert. Das Back-End beginnt nun, Nachrichten aus der Warteschlange mit dem neuen Client-Token für mein Gerät zu senden.
Tags und Links android firebase android-notifications notifications firebase-cloud-messaging