firebase cloud messaging: setBackgroundMessageHandler wurde nicht aufgerufen

8

Ich entwickle Browser-Push-Benachrichtigungen mit FCM. Ich habe den Beispielcode aus dem Schnellstart kopiert ( Ссылка ). Nachrichten werden empfangen und angezeigt, wie sie sein sollten. Aber wenn ich versuche, die Nachricht im Service Worker (messaging.setBackgroundMessageHandler) zu ändern, passiert nichts. Der Service-Mitarbeiter wird aufgerufen, und wenn ich einen Ereignis-Listener in diesem Service-Mitarbeiter für die Push-Benachrichtigungen implementiere, fängt er das Ereignis ab. Aber die Methode setBackgroundMessageHandler wird nie aufgerufen. Ich versuche dies auf Chrome 54.

Irgendwelche Ideen, was ich tun muss, um die Nachricht im Service-Mitarbeiter anzupassen?

Vielen Dank!

    
Mathias 07.11.2016, 10:02
quelle

3 Antworten

25

Für alle, die das gleiche Problem haben, hier ist die Antwort: Ссылка

Kurze Zusammenfassung: Fügen Sie kein "Benachrichtigungs" -Element in Ihre JSON-Nachricht ein.

    
Mathias 07.11.2016 17:44
quelle
1

Wenn Sie versuchen, eine Push-Nachricht zu senden, tun Sie das, während Ihre App im Fokus ist oder nicht? In der Dokumentation heißt es nämlich, dass setBackgroundMessageHandler nur aufgerufen wird, wenn die Webanwendung geschlossen ist oder sich nicht im Browserfokus befindet .

Basierend auf dem Beispielcode aus dem Schnellstart ( Ссылка ).

Wenn Ihre App im Fokus ist: Die Push-Nachricht wird über messaging.onMessage () auf der index.html
empfangen Wenn Ihre App keinen Fokus hat: Die Push-Nachricht wird über setBackgroundMessageHandler () in der Service-Worker-Datei empfangen.

    
River Paul 07.11.2016 11:16
quelle
0

Dies ist eine Lösung, die für mich in einer Webanwendung funktioniert hat. Es zeigt die Benachrichtigung mit Titel und Textkörper zusammen mit einem Bild an und bearbeitet den Benutzerklick.

firebase-messaging-sw.js

%Vor%

JSON-Nachricht

%Vor%

}

    
Sparm 04.01.2018 23:06
quelle