如何使用 firebase 云消息获取推送消息事件,如点击、关闭、显示
How to get push message events like click,close,show with firebase cloud messaging
正在尝试使用 FCM 实现网络推送通知。
我可以使用 firebase 云消息库在浏览器上接收带有负载的推送消息。
下面是 javascript 代码片段。
<script src="https://www.gstatic.com/firebasejs/3.5.1/firebase.js"> </script>
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.onMessage(function(payload){
console.log('onMessage',payload);
});
如何捕获点击、关闭、显示等事件?
通知打开
您可以通过将以下内容添加到您的 firebase-messaging-sw.js 文件来监听数据负载的通知点击:
self.addEventListener('notificationclick', function(event) {
event.notification.close();
// Do something as the result of the notification click
});
通知关闭
您可以通过以下方式监听通知关闭事件:
self.addEventListener('notificationclose', function(event) {
// Do something as the result of the notification close
});
注:event.waitUntil()
你应该知道,为了确保你的代码有时间完成 运行,你需要将一个承诺传递给 event.waitUntil()
,当你的代码完成时解析,例如:
self.addEventListener('notificationclick', function(event) {
event.notification.close();
const myPromise = new Promise(function(resolve, reject) {
// Do you work here
// Once finished, call resolve() or reject().
resolve();
});
event.waitUntil(myPromise);
});
如果通知是数据负载,您会知道何时显示通知,因为您需要在自己的代码中调用 self.registration.showNotification()
,如下所示:
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'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
您无法检测何时为 "notification" 负载显示通知,因为 SDK 会同时处理显示通知和单击时的行为。
代码片段来自:
正在尝试使用 FCM 实现网络推送通知。
我可以使用 firebase 云消息库在浏览器上接收带有负载的推送消息。
下面是 javascript 代码片段。
<script src="https://www.gstatic.com/firebasejs/3.5.1/firebase.js"> </script>
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.onMessage(function(payload){
console.log('onMessage',payload);
});
如何捕获点击、关闭、显示等事件?
通知打开
您可以通过将以下内容添加到您的 firebase-messaging-sw.js 文件来监听数据负载的通知点击:
self.addEventListener('notificationclick', function(event) {
event.notification.close();
// Do something as the result of the notification click
});
通知关闭
您可以通过以下方式监听通知关闭事件:
self.addEventListener('notificationclose', function(event) {
// Do something as the result of the notification close
});
注:event.waitUntil()
你应该知道,为了确保你的代码有时间完成 运行,你需要将一个承诺传递给 event.waitUntil()
,当你的代码完成时解析,例如:
self.addEventListener('notificationclick', function(event) {
event.notification.close();
const myPromise = new Promise(function(resolve, reject) {
// Do you work here
// Once finished, call resolve() or reject().
resolve();
});
event.waitUntil(myPromise);
});
如果通知是数据负载,您会知道何时显示通知,因为您需要在自己的代码中调用 self.registration.showNotification()
,如下所示:
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'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
您无法检测何时为 "notification" 负载显示通知,因为 SDK 会同时处理显示通知和单击时的行为。
代码片段来自: