只有当应用在前台时才能显示通知吗?我不需要在后台显示通知。我的setBackgroundMessageHandler
in service worker如下所示:
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
// Customize notification here
var notificationTitle = 'Background Message Title';
var notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
});
我不返回showNotification
,但显示
2条答案
按热度按时间osh3o9ms1#
Firebase云消息传递有两种类型的消息:
1.通知。当应用处于后台时,这些通知由系统处理,并在这种情况下显示在系统抽屉中。当应用处于前台时,通知将传递到应用代码。
1.数据消息。无论应用是在前台还是在后台,这些消息总是传递给应用代码。
由于要阻止系统在系统任务栏中显示通知,因此应发送数据消息。
dfty9e192#
为了避免其他人浪费时间,就像我所做的那样,不可能只在前台处理推送事件。(也就是不允许静默推送)
即使你把消息类型从通知改为数据,你最后得到的也只是一条普通的Chrome消息,上面写着“这个网站已经在后台更新了"。
更多关于这一点:
https://blog.pushpad.xyz/2022/09/this-site-has-been-updated-in-the-background/