javascript - Google 云消息传递 (GCM) 无法与 Firefox 配合使用

标签 javascript jquery push-notification google-cloud-messaging service-worker

我有一个 Service Worker 可以通过 Chrome 很好地接收通知, 但 Firefox 无法接收。

在 Firefox 中根本不会触发 Push 监听器(通过调试),

PS:Service Worker 已成功注册,但未收到通知。

我的代码有什么问题?

self.addEventListener('install', function (event) {
event.waitUntil(self.skipWaiting());
});

self.addEventListener('activate', function (event) {
console.log('Activated', event);
});

self.addEventListener('push', function (event) {
event.waitUntil(
    fetch('/path', {
        credentials: 'include',
        method: 'post',
    })
    .then(function (response) {
        return response.json()
            .then(function (data) {
                return self.registration.showNotification(data.title, {
                    body: data.body,
                    icon: '/images/image.png',
                });
            });
    })
    .catch(function (error) {
        console.error('wrong', error);
    })
);
});

最佳答案

基于此documentation ,如果您使用 Channel Messaging API要与 Service Worker 进行通信,请设置一个新的消息 channel ( MessageChannel.MessageChannel() ) 并通过调用 Worker.postMessage() 将 port2 发送到 Service Worker在 Service Worker 上,以打开通信 channel 。您还应该设置一个监听器来响应从服务工作人员发回的消息。

确保您遵循这些 steps关于如何正确设置 GCM。您还可以查看此相关链接:GCM Equivalent for Firefox

希望这有帮助!

关于javascript - Google 云消息传递 (GCM) 无法与 Firefox 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020868/

相关文章:

c# - 收到推送通知时隐藏 Toast 通知

javascript event.target 在 mozilla 中不工作

javascript - 如何在单击按钮而不是元素本身时翻转 div

jquery - 使一个 div 永远不会超过另一个 div 的长度

javascript - CSS 过渡提前中断

macos - 选项卡关闭时不显示 Web 推送通知

java - 如何制作不同内容的重复通知

javascript - 有关使用客户端凭据 One Drive 访问 MS Graph 的问题吗?

javascript - 如何在文本区域中显示文本文件内容?

javascript - 发布到 npm, `main` 中定义的文件未发布