В настоящее время я внедрил webpush в наших сервисах. Все работает отлично, за исключением одной проблемы, которую я не могу решить прямо сейчас.
Давайте предположим следующий рабочий процесс с точки зрения пользователя
- Заходите на сайт, который дает мне push-уведомления. Меня попросили об этом, и я принимаю это.
- В фоновом режиме мы получаем подписку со всеми необходимыми материалами из
pushManager
API.
- Мы храним это в нашей базе данных, чтобы позже иметь возможность отправить сообщение пользователю.
- Отправка сообщений работает отлично. Все хорошо
- Пользователь решает заблокировать сайт для push-сервисов на некоторое время (праздники, им не нужны push-сообщения на этот раз)
- Отправка сообщений невозможна, как и ожидалось. Здесь нет проблем.
- Пользователь решает после праздников повторно включить уведомления только в настройках страницы браузера. От заблокированного, чтобы разрешить. Без повторного посещения сайта.
- И с этого момента серверу webpush все еще невозможно отправлять сообщения этому пользователю. Подписка, которую мы получили в версии 2, по-прежнему недействительна, даже если пользователь повторно принял ее в настройках браузера.
- Пользователь должен вернуться на страницу, где мы можем получить новую подписку от
pushManager.subscribe
. Только после этого шага, с новой подпиской, можно отправлять сообщения снова.
Кто-нибудь знает, так ли это, или я упустил момент? Я не могу найти ничего в официальных документах для такого поведения. Я вижу это как проблему, потому что пользователи не знают, что они не получают сообщения после повторного включения уведомлений для сайта.
Если проверено это и для chrome и для firefox. Они действуют одинаково.