Consegui seguir todas as instruções e tutoriais para receber notificações de trabalho em meu aplicativo Angular 9 quando o aplicativo está em segundo e primeiro plano, no entanto, estou usando o FCM para passar mensagens de dados para meu aplicativo a fim de atualizar um painel em tempo real.
No meu app.component, tenho o seguinte:
ngOnInit() {
this.messagingService.requestPermission();
this.message = this.messagingService.currentMessage;
navigator.serviceWorker.addEventListener('message', function(event) {
console.log('Received a message from service worker: ', event);
//The below service doesnt exist in this context
this.messagingService.processMessage(event)
});
}
Consigo processar mensagens em meu serviço quando o aplicativo está em primeiro plano, mas não consigo inserir dados em meu serviço quando o aplicativo está em segundo plano. Alguém pode ajudar?
Esta pergunta é semelhante a esta , mas obviamente havia alguns problemas com essa pergunta.
Então me deparei com essa resposta que me ajudou a resolver esse problema. Tudo o que era necessário era tornar o addEventListener uma função de seta para vincular ao this do componente:
ngOnInit() {
this.messagingService.requestPermission();
this.message = this.messagingService.currentMessage;
navigator.serviceWorker.addEventListener('message', (event) => {
this.messagingService.processMessage(event)
});
}
Meu entendimento de 'esta' ligação é rudamentar na melhor das hipóteses, então eu encorajo você a fazer sua própria leitura.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras