Почему я получаю дубликаты push-уведомлений как в браузере PWA, так и в Chrome?Jquery

Программирование на jquery
Ответить
Anonymous
 Почему я получаю дубликаты push-уведомлений как в браузере PWA, так и в Chrome?

Сообщение Anonymous »

Я разрабатываю PWA, использующее push-уведомления. Проблема, с которой я столкнулся, заключается в том, что когда push-уведомление отправляется с сервера, пользователь получает его дважды:
Один раз в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»