Включение push-уведомлений в некоторых случаях не приводит к подписке

В ходе первоначального онбординга я заметил, что пользователи iOS устанавливают форумы как PWA, а затем получают баннер с запросом согласия на уведомления при первом открытии PWA.
Если они нажимают «Включить уведомления» в этом баннере, система запрашивает разрешение, и после этого им отправляется уведомление с подтверждением.

Однако это на самом деле не подписывает пользователей на push-уведомления, что неожиданно!

Похоже, что для баннера согласия на уведомления код здесь сначала идёт по ветке else, чтобы запросить согласие пользователя (Notification.requestPermission), но он НЕ подписывает на push-уведомления (subscribePushNotification).


Временное решение на данный момент — пользователям перейти в настройки уведомлений и нажать кнопку «Включить уведомления» там.

1 лайк

https://github.com/discourse/discourse/pull/34644

Большое спасибо за подробный pull request! В ближайшие недели кто-то из команды его изучит!

1 лайк

Спасибо!

С момента публикации я доработал этот PR — надеюсь, это не слишком много :slight_smile:
Думаю, это значительно улучшит интеграцию Discourse с WebPush и предоставит вам точку расширения, которую можно использовать, чтобы побуждать пользователей iOS устанавливать Discourse в качестве PWA.

1 лайк

Я развернул это изменение на своих форумах, и оно уже в работе.
Думаю, это действительно повысит активность моих пользователей :smiley:

Я попросил кого-то проверить мои форумы, и подтвердил, что им было предложено включить push-уведомления (и на рабочем столе, и на Android). Они также зарегистрированы на бэкенде (в таблице push_notifications).
Теперь осталось только попросить всех остальных снова зайти на форумы.

P.S: Этот запрос по-прежнему скрыт за этой настройкой:

2 лайка

Спасибо за всю проделанную работу. Мы только что вернулись с нашей встречи и сможем провести полноценный обзор в ближайшие пару недель.

1 лайк