微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何避免重复推送通知

如何解决如何避免重复推送通知

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 举报,一经查实,本站将立刻删除。