Я создаю 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);
})
}
}