javascript - 如何通过 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
解决方案
推荐阅读
- angular - Angular:将字段添加到枚举(如 swift/kotlin)的最佳方式?
- php - 防止apache中的目录尾部斜杠
- python-3.x - 我正在编写一个代码来计算python中相邻字母的频率
- javascript - 使用给定对象替换所有文本
- css - 材料表:是否可以仅更改单列的过滤器图标?
- apache-spark - Pyspark:不存在多个线性回归标签字段
- c# - 如何在 Slider C# UWP 中添加不规则的刻度间隔
- text - Sublime Text 3 中文本文件的主题
- javascript - React Native:将导航与映射到数组的动态组件一起使用
- azure - Azure Artifacts Feed 比 maven Central 慢得多