当 Chrome 选项卡打开但未处于活动状态时,Firebase 通知 onMessage 未命中

Sav*_*n S 5 javascript google-chrome push-notification firebase firebase-cloud-messaging

我已经设置了 firebase 消息传递服务,它的工作原理很有魅力。唯一的问题是messaging.onMessage我在我的页面上增加了通知计数。此外,我还有 Service Worker 设置,可以在后台抛出 chrome 通知。

带计数器的通知铃

当我的选项卡打开但未处于活动状态时messaging.onMessage未命中,但后台处理程序服务工作者正在命中。所以我网站上的计数器没有增加。当用户再次返回我的网站选项卡时,它会显示旧的通知计数。那是在创造糟糕的用户体验。我在点击计数时显示通知列表,就像 facebook 显示的那样。

loo*_*p88 5

我不确定您如何更新通知徽章计数。但是,您可以在下面的回调函数中检索整个有效负载:

背景:

messaging.setBackgroundMessageHandler(function(payload) {

     console.log(payload.data.badgeCount);

     return self.registration.showNotification(title, options);
});
Run Code Online (Sandbox Code Playgroud)

前景:

messaging.onMessage(function(payload) {

     console.log(payload.data.badgeCount);

});
Run Code Online (Sandbox Code Playgroud)

无论 Web 应用处于前台还是后台状态,分别在 onMessage 回调和 setBackgroundMessageHandler 回调中获取有效负载,然后更新 UI。

希望这可以帮助 :)