Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 到达前景角度PWA时读取背景FCM消息数据_Angular_Firebase_Firebase Cloud Messaging_Progressive Web Apps - Fatal编程技术网

Angular 到达前景角度PWA时读取背景FCM消息数据

Angular 到达前景角度PWA时读取背景FCM消息数据,angular,firebase,firebase-cloud-messaging,progressive-web-apps,Angular,Firebase,Firebase Cloud Messaging,Progressive Web Apps,我正在创建一个Ionic 5 Angular PWA应用程序,在@Angular/fire和firebase npm软件包的帮助下集成FCM。我能够在前台和后台成功地集成它和消息接收。但在用户再次进入应用程序前台后,我需要在应用程序处于后台时获取所有消息数据。任何人都可以建议我做这件事的最佳方法 这是我的信息服务课 import { AngularFireMessaging } from '@angular/fire/messaging'; import { BehaviorSubject }

我正在创建一个Ionic 5 Angular PWA应用程序,在@Angular/fire和firebase npm软件包的帮助下集成FCM。我能够在前台和后台成功地集成它和消息接收。但在用户再次进入应用程序前台后,我需要在应用程序处于后台时获取所有消息数据。任何人都可以建议我做这件事的最佳方法

这是我的信息服务课

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);
        })
    }
}