Как считать фоновые уведомления, используя Angular 7 & FCM (Firebase Cloud Messaging) - PullRequest
0 голосов
/ 24 мая 2019

В настоящее время я использую счетчик уведомлений, основанный на полученных 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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...