Уведомление Firebase onMessage не срабатывает, когда вкладка Chrome открыта, но не активна - PullRequest
0 голосов
/ 05 мая 2018

У меня настроена служба сообщений Firebase, и она работает как шарм. Единственная проблема в функции messaging.onMessage. Я увеличил количество уведомлений на своей странице. Кроме того, у меня также есть настройка сервисного работника, которая выдает уведомления Chrome в фоновом режиме.

notification bell with counter

Когда моя вкладка открыта, но не активна , messaging.onMessage не получает удар, но работает работник службы фонового обработчика. Так что счетчик на моем сайте не увеличивается. Когда пользователь снова возвращается на вкладку моего веб-сайта, он показывает старый счетчик уведомлений. Это создает плохой UX. Я показываю список уведомлений по щелчку счетчика, как показывает Facebook.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Я не уверен, как вы обновляете счетчик значков уведомлений. Но вы можете получить всю полезную нагрузку в функции обратного вызова ниже:

для фона:

messaging.setBackgroundMessageHandler(function(payload) {

     console.log(payload.data.badgeCount);

     return self.registration.showNotification(title, options);
});

для переднего плана:

messaging.onMessage(function(payload) {

     console.log(payload.data.badgeCount);

});

Находится ли веб-приложение на переднем плане или в фоновом состоянии, получите полезную нагрузку в обратных вызовах onMessage и setBackgroundMessageHandler соответственно, затем обновите пользовательский интерфейс.

Надеюсь, это поможет:)

0 голосов
/ 08 мая 2018

Когда ваш веб-сайт не находится на активной вкладке, Firebase SDK будет либо отображать уведомление, либо вызывать функцию, которую вы можете установить с помощью setBackgroundMessageHandler. Если ваша полезная нагрузка содержит поле notification, появится уведомление. В противном случае ваш обратный вызов будет вызван.

Я рекомендую не отправлять полезную нагрузку notification (вы все равно можете отправить ее в поле data и написать обработчик фоновых сообщений.

См. Это Руководство по Firebase для получения дополнительной информации.

...