Push Manager — при изменении события подписки

#typescript #push-notification #service-worker #web-push

#typescript #push-уведомление #служба-работник #web-push

Вопрос:

Вопрос

Есть ли какое-либо событие, которое я могу прослушать, когда новая push-подписка добавляется (после subscribe ()) в браузер или когда подписка удаляется (после unsubscribe ())?

Сценарий

У меня есть компонент react, в котором мне нужно состояние обновления, когда push-подписка добавляется или удаляется в моей области браузера. Эта подписка добавляется в общий скрипт, который может быть выполнен до или после того, как мой компонент будет смонтирован.

Пытается

Я попробовал pushsubscriptionchange, где sw — это объект ServiceWorkerRegistration

 sw.addEventListener("pushsubscriptionchange", func);
 

но это вообще не работает (функция никогда не выполняется).

в sw.pushManager вообще нет addEventListener.

Ответ №1:

pushsubscriptionchange, похоже, тоже не вызывается для меня.. вам просто нужно сохранить подписку на свой api, когда они позволят. Что касается отписок, push api сообщает вам об этом во время попытки отправки, поэтому просто отметьте подписки как отписанные. Я знаю, что это не идеально, не зная точно, когда они отписались, но лучше, чем ничего

Комментарии:

1. Вы знаете, почему? Это проблема браузера?

2. Честно говоря, не знаю. Chrome не поддерживает событие pushsubscriptionchange (хотя это могло измениться в прошлом году), и firefox, похоже, запускается только при истечении срока действия или обновлении пользователя, а не при удалении подписки. Так что да, это очень ненадежно, и, поскольку я работаю над проектом с ограниченным временем, у меня нет времени на его изучение