gpt4 book ai didi

reactjs - Firebase 云消息在超出窗口焦点时不显示通知

转载 作者:行者123 更新时间:2023-12-04 08:29:42 25 4
gpt4 key购买 nike

最近开始研究 FCM,有两种情况,或者您在浏览器窗口中,您将使用事件监听器在窗口内收到应用内通知,或者如果您不在浏览器窗口中,您将收到桌面通知.
在我的特殊情况下,每当我在窗口上时,只要收到某个消息对象,我就会调用 API 来获取数据

navigator.serviceWorker.addEventListener("message", ({ data }) => {
dispatch(getNotifications(10));
});
这工作正常,但是当我有一个打开的选项卡但我在另一个窗口上时,FCM 没有得到这个消息对象并且没有调用事件监听器,基本上我必须刷新页面或使用 window.onfocus 重新 -当我回到选项卡时调用 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

关于reactjs - Firebase 云消息在超出窗口焦点时不显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65086364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com