2017-02-17 16 views
1

Ich habe versucht, FCM (Firebase Cloud Messaging) für Web Push Notification zu verwenden. Ich habe erfolgreich eine Nachricht erhalten, als der Tab der Web-App im Fokus war.FCM Service Worker setBackgroundMessageHandler

Aber wenn ich die Registerkarte schloss, sollte es den Service-Arbeiter anrufen (das ist firebase-messaging-sw.js in FCM-Beispiel). Aber es hat die setBackgroundMessageHandler überhaupt nicht angerufen.

const messaging = firebase.messaging(); 
messaging.setBackgroundMessageHandler(function(payload) { 
    console.log('[firebase-messaging-sw.js] Received background message ', payload); 
    const notificationTitle = 'Background Message Title'; 
    const notificationOptions = { 
    body: 'Background Message body.', 
    icon: 'firebase-logo.png' 
    }; 

    return self.registration.showNotification(notificationTitle, 
     notificationOptions); 
}); 
+1

Haben Sie die 'messagingSenderId' eingestellt? Denn abgesehen davon sieht dein Code genauso aus wie das, was ich habe - und das funktioniert. : -/ –

+0

hast du die Registerkarte geschlossen? Ich denke, es funktioniert, wenn der Tab nicht geschlossen und nicht aktiv ist –

Antwort

0

Fügen Sie in Ihrer manifest.json Datei folgende: {"gcm_sender_id": "103953800507"} diese gcm_sender_id ist einzigartig für alle fcm Benutzer, es ist nicht spezifisch für Ihr Projekt.

Fügen Sie in Ihrem Service-Worker-Code Ihre projektspezifische Absender-ID hinzu. Das Arbeitsbeispiel des Service Worker-Codes ist here.

Es sollte eine Hintergrundbenachrichtigung anzeigen, wenn der Tab Ihrer Website nicht im Fokus/geschlossen und der Browser geöffnet ist.