2017-02-17 10 views
1

Я попытался использовать FCM (Firebase Cloud Messaging) для уведомления в Интернете. Я успешно получил сообщение, когда вкладка веб-приложения находилась в фокусе.Работник службы FCM setBackgroundMessageHandler

Но когда я закрыл вкладку, он должен был вызвать сервисного работника (который является firebase-messaging-sw.js в образце FCM). Но он вообще не назвал setBackgroundMessageHandler.

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

Вы установили 'messagingSenderId'? Потому что помимо этого ваш код выглядит так же, как и у меня, - и это работает. : -/ –

+0

сделал ли вы закрыть вкладку? я думаю, что он работает, когда вкладка не закрыта и не активна –

ответ

0

Включите в ваш файл manifest.json: {"gcm_sender_id": "103953800507"} это gcm_sender_id является уникальным для всех пользователей FCM, его не специфичны для вашего проекта.

В вашем рабочем рабочем коде добавьте идентификатор отправителя конкретного проекта. Рабочий пример кода рабочего персонала here.

Он должен отображать фоновое уведомление, когда вкладка вашего сайта не находится в фокусе/закрыта, а браузер открыт.