- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我的 fcm setBackgroundMessageHandler
函数:
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
// Customize notification here
const notificationTitle = 'Background Message Title';
const notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
var event = new CustomEvent("name-of-event", payload);
// Dispatch/Trigger/Fire the event
document.dispatchEvent(event);
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
我无法在上述方法中访问文档
。我尝试将文档保存在全局变量中并在上面的方法中访问它,但它不起作用。
var document = document;
.
.
.
document.dispatchEvent(event); // gives error: dispatchEvent of undefined
最佳答案
由于 document
在服务工作人员中无法访问。因此无法使用其 dispatchEvent
函数向主页面发出事件。
要将消息从服务工作人员发送到主页
,我们可以使用BroadcastChannel
。在主页中创建一个监听器,如下所示:
var listener = new BroadcastChannel('listener');
listener.onmessage = function(e) {
console.log('Got message from service worker',e);
};
在 service Worker js
文件中使用 BroadcastChannel
的 postMessage
函数将消息发送到主页:
var listener = new BroadcastChannel('listener');
listener.postMessage('It works !!');
关于javascript - 在fcm的setBackgroundMessageHandler函数中获取文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48004616/
我正在使用 FCM 对浏览器推送通知进行原型(prototype)设计。我刚刚从快速入门 (https://github.com/firebase/quickstart-js/tree/master/
在 react-native-firebase v6 , 收不到 setBackgroundMessageHandler在我的应用程序中工作。收到通知就好了,但没有执行处理程序。 我已经像 guide
我尝试使用 FCM ( Firebase Cloud Messaging ) 进行 Web 推送通知。当网络应用程序选项卡处于焦点状态时,我成功收到一条消息。 但是当我关闭选项卡时,它应该调用服务工作
我正在尝试 Firebase 云消息传递。它非常棒,但我很难让它为我工作。 我面临的问题是服务 worker ,这是我的 firebase-messaging-sw.js : console.log(
我正在 FCM 的 setBackgroundMessageHandler 事件中创建一个通过异步存储存储数据的函数。 我正在使用@react-native-firebase/messaging。 S
我在我的 Angular 应用程序中使用 firebase 在 web 中发送推送通知。我实现了 messaging.onMessage()用于在应用程序处于前台和 messaging.setBack
我是一名优秀的程序员,十分优秀!