Один раз в PWA.
Еще раз в браузере Chrome.
Я ожидаю, что уведомление появится только один раз.
Вот код, который я использую в сервисном работнике для обработки push-событий:
Код: Выделить всё
const beamsClient = new PusherPushNotifications.Client({
instanceId: 'xxxx-xxx-xxx-xxx-xxxxxx-xxxx',
});
beamsClient.start()
.then(() => beamsClient.addDeviceInterest('user-123'))
.then(() => console.log('Successfully registered and subscribed!'))
.catch(console.error);
Код: Выделить всё
importScripts('https://js.pusher.com/beams/service-worker.js');
self.addEventListener('push', function (event) {
if (!event.data) {
console.error('No payload received');
return;
}
const data = event.data.json();
// نمایش نوتیفیکیشن
const options = {
body: data.body || 'پیام جدید!',
icon: data.icon || '/icon.png',
badge: data.badge || '/badge.png',
tag: data.tag || 'notification-tag', // جلوگیری از تکرار
};
// جلوگیری از چندین بار نمایش
event.waitUntil(
self.registration.showNotification(data.title || 'عنوان پیام', options)
);
});
self.addEventListener('notificationclick', function (event) {
event.notification.close();
event.waitUntil(
clients.openWindow(event.notification.data?.url || '/')
);
});
Как предотвратить дублирование уведомления не отображаются как в PWA, так и в браузере Chrome?
Если потребуется дополнительная информация, дайте мне знать.
Заранее спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/792 ... me-browser
Мобильная версия