如何解决如何避免重复推送通知
importScripts('https://www.gstatic.com/firebasejs/8.4.3/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/8.4.3/firebase-messaging.js')
firebase.initializeApp({...config});
const messaging = firebase.messaging();
messaging.onBackgroundMessage(function (payload) {
console.log('sw-fb',payload);
const notificationTitle = payload.notification.title;
const notificationoptions = {
body:"something Body",data:{...}
};
return self.registration.showNotification(notificationTitle,notificationoptions);
},
在这里,我试图显示来自 firebase 的推送通知,但是对于每个通知都会收到两个通知。第一个是默认的,第二个来自我的服务工作者。
解决方法
为了避免默认通知,通过fcm发送时需要发送如下通知数据
var payload = {
notification:{},data: {
title:'title',body:'something body',image:path,icon...},token: registrationToken
};
messaging.send(payload).then((result) => {console.log(result)})
并将 srviceworker 更新为
messaging.onBackgroundMessage((payload) => {
const { data }= payload;
const notificationTitle = data?.title;
const notificationOptions =
{ image:data.image,title:data.title,body: data.body,icon:data.icon }
self.registration.showNotification(notificationTitle,notificationOptions);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。