Webpush - блокировать и разблокировать позже не работает - пользователь должен повторно подписаться вручную - PullRequest
0 голосов
/ 01 июля 2019

В настоящее время я внедрил webpush в наших сервисах. Все работает отлично, за исключением одной проблемы, которую я не могу решить прямо сейчас.

Давайте предположим следующий рабочий процесс с точки зрения пользователя

  1. Заходите на сайт, который дает мне push-уведомления. Меня попросили об этом, и я принимаю это.
  2. В фоновом режиме мы получаем подписку со всеми необходимыми материалами из pushManager API.
  3. Мы храним это в нашей базе данных, чтобы позже иметь возможность отправить сообщение пользователю.
  4. Отправка сообщений работает отлично. Все хорошо
  5. Пользователь решает заблокировать сайт для push-сервисов на некоторое время (праздники, им не нужны push-сообщения на этот раз)
  6. Отправка сообщений невозможна, как и ожидалось. Здесь нет проблем.
  7. Пользователь решает после праздников повторно включить уведомления только в настройках страницы браузера. От заблокированного, чтобы разрешить. Без повторного посещения сайта.
  8. И с этого момента серверу webpush все еще невозможно отправлять сообщения этому пользователю. Подписка, которую мы получили в версии 2, по-прежнему недействительна, даже если пользователь повторно принял ее в настройках браузера.
  9. Пользователь должен вернуться на страницу, где мы можем получить новую подписку от pushManager.subscribe. Только после этого шага, с новой подпиской, можно отправлять сообщения снова.

Кто-нибудь знает, так ли это, или я упустил момент? Я не могу найти ничего в официальных документах для такого поведения. Я вижу это как проблему, потому что пользователи не знают, что они не получают сообщения после повторного включения уведомлений для сайта.

Если проверено это и для chrome и для firefox. Они действуют одинаково.

...