簡體   English   中英

Firebase 雲消息在離開 window 焦點時不顯示通知

[英]Firebase cloud messaging doesn't show notification when out of window focus

最近開始研究 FCM,有兩種情況,要么您使用瀏覽器 window,您將使用事件偵聽器在 window 中收到應用內通知,或者如果您關閉瀏覽器 Z05B8C74CBD96FBF2DE4C1A352702FBF4,您將收到桌面通知.

在我的特殊情況下,每當我在 window 上時,我都會調用 API 以在收到特定消息 object 時獲取數據

navigator.serviceWorker.addEventListener("message", ({ data }) => {
  dispatch(getNotifications(10));
});

這工作正常,但是當我有一個打開的選項卡但我在另一個 window 上時,FCM 沒有收到此消息 object 並且沒有調用事件偵聽器,基本上我必須刷新頁面或使用 Z05B8C74CBD96FBF2DE4C1A352702 重新聚焦。當我回到選項卡時,請致電 api。

有人有解決方法嗎?

遺憾的是,當您在另一個選項卡上時,Firebase 不會顯示該消息。

但是您可以使用開箱即用的BroadcastChannel API。 它就像一個魅力。 在您的服務人員中,您可以添加以下內容:

const broadcast = new BroadcastChannel('background-message');

messaging.onBackgroundMessage(message => {
    broadcast.postMessage(message);
})

然后在您的應用程序中收聽“背景消息”:

const broadcast = new BroadcastChannel('background-message');
broadcast.onmessage = (event) => {
  console.log('message from service-worker:', event.data)
};

更新:這在 safari 上不起作用,但這個解決方案似乎有效: https://stackoverflow.com/a/57964685/11827624

暫無
暫無

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

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