firebase FCM仅在前台

w8rqjzmb  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(131)

只有当应用在前台时才能显示通知吗?我不需要在后台显示通知。我的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,但显示

osh3o9ms

osh3o9ms1#

Firebase云消息传递有两种类型的消息:
1.通知。当应用处于后台时,这些通知由系统处理,并在这种情况下显示在系统抽屉中。当应用处于前台时,通知将传递到应用代码。
1.数据消息。无论应用是在前台还是在后台,这些消息总是传递给应用代码。
由于要阻止系统在系统任务栏中显示通知,因此应发送数据消息。

dfty9e19

dfty9e192#

为了避免其他人浪费时间,就像我所做的那样,不可能只在前台处理推送事件。(也就是不允许静默推送)
即使你把消息类型从通知改为数据,你最后得到的也只是一条普通的Chrome消息,上面写着“这个网站已经在后台更新了"。
更多关于这一点:
https://blog.pushpad.xyz/2022/09/this-site-has-been-updated-in-the-background/

相关问题