首页 > 解决方案 > 如何通过 Angular 服务中的 Firebase 订阅后台消息(Typescript 文件)

问题描述

import { Injectable } from "@angular/core";
import { AngularFireMessaging } from "@angular/fire/messaging";
import { BehaviorSubject, Subject } from "rxjs";
@Injectable()
export class AppService {
    currentMessage = new BehaviorSubject(null);
    fcm_key = new BehaviorSubject(null);

    private componentMethodCallSource = new Subject<any>();

    componentMethodCalled$ = this.componentMethodCallSource.asObservable();
    constructor(private angularFireMessaging: AngularFireMessaging) { }

    requestPermission() {
        this.angularFireMessaging.requestToken.subscribe(
            (token: any) => {
                this.fcm_key.next(token);
            },
            (err: any) => {
                console.error("Unable to get permission to notify.", err);
            }
        );
    }

    receiveMessage() {

        this.angularFireMessaging.messages.subscribe((payload: any) => {
            this.componentMethodCallSource.next(payload);
            this.currentMessage.next(payload);
        });
    }
}

在我的应用程序中,我订阅了 Firebase(Cloud base)以获取主动和被动选项卡的通知消息。在那,我通过 PHP CURL(使用 firebase 键)触发 firebase 以获取通知。我可以使用以下功能获取通知

活动标签:

this.angularFireMessaging.messages.subscribe((payload: any) => {
        this.componentMethodCallSource.next(payload);
        this.currentMessage.next(payload);
    });

但我不知道如何在 Angular 中使用以下函数来获取通知消息,即使我的应用程序选项卡未处于活动状态。

this.angularFireMessaging.onBackgroundMessage

标签: javascriptangularfirebase-cloud-messagingangularfire2

解决方案


推荐阅读