Считывание фоновых данных сообщения FCM при переходе на передний план Angular PWA - PullRequest
0 голосов
/ 01 мая 2020

Я создаю PWA-приложение Ioni c 5 Angular с интеграцией FCM с помощью пакетов @ angular / fire и firebase npm. Я смог успешно интегрировать его и успешно получать сообщения как на переднем, так и на заднем плане. Но мне нужно получить данные всех сообщений, пока приложение в фоновом режиме, после того как пользователь снова выйдет на передний план приложения. Любой может предложить мне лучший способ сделать это.

Это мой класс MessagingService

import { AngularFireMessaging } from '@angular/fire/messaging';
import { BehaviorSubject } from 'rxjs'
import { NotificationsClient, RegisterPushTokenVm } from 'src/app/api-proxy/medcollector-api';

@Injectable()
export class MessagingService {
    currentMessage = new BehaviorSubject(null);

    constructor(private angularFireMessaging: AngularFireMessaging, private notificationsClient: NotificationsClient) {

        this.angularFireMessaging.messaging.subscribe(
            (_messaging) => {
              _messaging.onMessage = _messaging.onMessage.bind(_messaging);
              _messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging);
            }

          )
    }

    requestPermission() {
        this.angularFireMessaging.requestToken.subscribe(async (token) => {
            const tokenVm = new RegisterPushTokenVm();
            tokenVm.token = token;
            await this.notificationsClient.register(tokenVm).toPromise();
            console.log(token);
        }, (err) => {
            console.error('Unable to get permission to notify.', err);
        });
    }

    receiveMessage() {
        this.angularFireMessaging.messages.subscribe((payload) => {
            console.log('new message received. ', payload);
            this.currentMessage.next(payload);
        })
    }
}
...