feat(pwa): предложение включить уведомления после установки

Карточка появляется в установленном приложении (и сразу по событию appinstalled),
объясняет пользу — новый штраф, дошедшее пополнение — и только по кнопке вызывает
системное окно.

Порядок именно такой, потому что системное окно показывается ОДИН раз за
установку: отказ браузер запоминает навсегда, и переспросить нечем. Своё
предложение отказа не стоит — «не сейчас» откладывает разговор на неделю.

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

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 10:50:23 +10:00
co-authored by Claude Opus 5
parent 562a6d35fe
commit 4b30b4bbbe
4 changed files with 149 additions and 0 deletions
+5
View File
@@ -15,6 +15,11 @@ export type PushState =
| "off" // можно включить
| "on"; // подписка есть
/** Приложение открыто как установленное (с домашнего экрана), а не вкладкой. */
export function installed(): boolean {
return isStandalone();
}
function isStandalone(): boolean {
return window.matchMedia("(display-mode: standalone)").matches ||
// iOS до 17 не поддерживает display-mode: standalone в matchMedia