首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FCM web后台服务工作者

FCM web后台服务工作者
EN

Stack Overflow用户
提问于 2017-11-02 10:18:30
回答 1查看 1.5K关注 0票数 1

当我的网页在后台(窗口最小化,或其他标签)时,我无法接收推送消息,它只显示正常的通知,但当我尝试回送post消息时,我的page.js中没有任何反应。

sw.js:

代码语言:javascript
复制
messaging.setBackgroundMessageHandler(function (payload) {
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    const title = '¡Mensaje Nuevo!';
    const options = {
        body: 'conductor: ' + payload.data.chofer_id + ' - ' + payload.data.mensaje,
        icon: '/icono.png',
    };

    send_message_to_all_clients('sound');

    return self.registration.showNotification(title, options);
});

function send_message_to_all_clients(msg) {
    clients.matchAll().then(clients => {
        clients.forEach(client => {
            send_message_to_client(client, msg).then(m => console.log("SW Received Message: " + m));
        })
    })
}

function send_message_to_client(client, msg) {
    return new Promise(function (resolve, reject) {
        var msg_chan = new MessageChannel();

        msg_chan.port1.onmessage = function (event) {
            if (event.data.error) {
                reject(event.data.error);
            } else {
                resolve(event.data);
            }
        };

        client.postMessage("SW Says: '" + msg + "'", [msg_chan.port2]);
    });
}

page.js

代码语言:javascript
复制
// Handler for messages coming from the service worker
navigator.serviceWorker.addEventListener('message', function (event) {
    console.log("Client 1 Received Message: " + event.data);
    $.playSound('Sounds/Tethys.mp3');
});

当我在网页上发送消息时,会显示控制台日志并播放声音:

客户端1收到消息: object Object

但从来不在后台。

请帮帮忙,已经好几个月了。

EN

回答 1

Stack Overflow用户

发布于 2017-11-02 10:38:48

我终于找到我的问题了!

我正在发送带有通知部分的FCM消息,并且使用service worker函数阻止将消息发送回我的页面。

代码语言:javascript
复制
{
  "to": "<token>",
 "notification": { // this was the problem
    "body": "test"
  }
  "data": {
    "chofer_id": 3,
    "mensaje": "hola"
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47066544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档