В настоящее время я использую счетчик уведомлений, основанный на полученных push-уведомлениях от firebase-messaging-sw.js & messaging.service.ts.
Я посчитал уведомления в messaging.service.ts (уведомления переднего плана) и отправил значение этих уведомлений моему основному компоненту, используя BehaviourSubject, где я могу отображать количество этих новых уведомлений (полученных push-уведомлений, когда мы находимся в приложении), но сейчас я пытаюсь, как передать (amoutOfNotifications) значение фоновых уведомлений, подсчитанных в firebase-messaging-sw.js (файл JS), в мой основной компонент (файл TypeScript).
firebase-сообщения-sw.js
// Give the service worker access to Firebase Messaging.
// Note that you can only use Firebase Messaging here, other Firebase libraries
// are not available in the service worker.
importScripts('https://www.gstatic.com/firebasejs/5.5.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.5.0/firebase-messaging.js');
// Initialize the Firebase app in the service worker by passing in the
// messagingSenderId.
firebase.initializeApp({
messagingSenderId: 'MY-SENDER-ID'
});
// Retrieve an instance of Firebase Messaging so that it can handle background
// messages.
const messaging = firebase.messaging();
let amountOfNotifications = 0;
messaging.setBackgroundMessageHandler(function(payload) {
if (payload.data.notification_type === 'message_001') {
amountOfNotifications = amountOfNotifications + 1;
console.log('amount of background notifications', amountOfNotifications);
// how to emit amoutOfNotifications to another typescript component???
}
// here you can override some options describing what's in the message;
// however, the actual content will come from the Webtask
const notificationOptions = {
body: 'New activity'
};
return self.registration.showNotification('Example App', notificationOptions);
});