如何使用firebase FCM向我的Ionic应用程序的所有用户推送通知



我需要用最新消息通知所有用户,我只做了通知方法,带有用户的令牌,但通知仅显示在的设备上这个用户,我需要通知所有用户在我的应用程序中,这段代码只用于通过用户的令牌发送通知,如何发送给用户组或所有用户,感谢的帮助

app.component.ts:

import { Component, OnInit } from '@angular/core';
import { CrudService } from './crud.service';
import { Platform } from '@ionic/angular';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { Router } from '@angular/router';
import {
ActionPerformed,
PushNotificationSchema,
PushNotifications,
Token,
} from '@capacitor/push-notifications';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss'],
})
export class AppComponent implements OnInit  {
constructor(public crud: CrudService ,  private platform: Platform,
private statusBar: StatusBar,
public router:Router){
this.initializeApp();
crud.databaseConn();
crud.getUsersList();
}

initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.router.navigateByUrl('splash');
});
}

ngOnInit() {
console.log('Initializing HomePage');

// Request permission to use push notifications
// iOS will prompt user and return if they granted permission or not
// Android will just grant without prompting
PushNotifications.requestPermissions().then(result => {
if (result.receive === 'granted') {
// Register with Apple / Google to receive push via APNS/FCM
PushNotifications.register();
} else {
// Show some error
}

});

PushNotifications.addListener('registration', (token: Token) => {
alert('Push registration success, token: ' + token.value);
console.log("token"+token.value)
});

PushNotifications.addListener('registrationError', (error: any) => {
alert('Error on registration: ' + JSON.stringify(error));
});

PushNotifications.addListener(
'pushNotificationReceived',
(notification: PushNotificationSchema) => {
var audio = new Audio("assets/bip_bip.mp3");
audio.play();
alert('Push received: ' + JSON.stringify(notification));
},
);

PushNotifications.addListener(
'pushNotificationActionPerformed',
(notification: ActionPerformed) => {
alert('Push action performed: ' + JSON.stringify(notification));
},
);
}
}

要通过FCM向多个设备发送推送通知,您需要使用主题并为某组用户订阅同一主题。例如:

import { PushNotifications } from "@capacitor/push-notifications";
import { FCM } from "@capacitor-community/fcm";
Import { Capacitor } from “@capacitor/core”;
// set up base push notifications with Capacitor
await PushNotifications.requestPermissions();
await PushNotifications.register();
let topic;
if (Capacitor.getPlatform() === ‘ios’) {
topic = ‘apple’
} else if (Capacitor.getPlatform() === ‘android’) {
topic = ‘google’
}

// set up Firebase Cloud Messaging topics
FCM.subscribeTo({ topic  })
.then(r => console.log(`subscribed to topic “${topic}”`))
.catch(err => console.log(err));

然后在FCM控制台上,您可以通过向以下主题发送通知来进行测试:如图所示

如果您想取消订阅主题,只需使用FCM.unsubscribeFrom((..

最新更新