簡體   English   中英

如何將數據從 Service Worker 傳遞到組件

[英]How to pass data from Service Worker to Component

當應用程序在后台和前台時,我已經設法按照所有說明和教程在我的 Angular 9 應用程序中獲取通知,但是我正在使用 FCM 將數據消息傳遞給我的應用程序以便更新實時儀表板。

在我的 app.component 我有以下內容:

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)

    });
  }

當應用程序在前台時,我可以在我的服務中處理消息,但是當應用程序在后台時,我無法將數據導入我的服務中。 有人可以幫忙嗎?

這個問題類似於這個問題,但顯然這個問題有幾個問題..

所以我遇到了這個答案,它幫助我解決了這個問題。 所需要的只是使 addEventListener 成為箭頭 function 以便綁定到組件的 this :

ngOnInit() {
this.messagingService.requestPermission();
this.message = this.messagingService.currentMessage;

navigator.serviceWorker.addEventListener('message', (event) => {

    this.messagingService.processMessage(event)

    });
  }

我對“this”綁定的理解充其量只是初步的,所以我鼓勵你自己閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM