-
Среда
Система и режим запуска
-
Разрешение
Действие пользователя
-
Подписка
Связь с текущим аккаунтом
-
Переход
Нужный заказ без утечки
Если PWA на iPhone не устанавливается или не получает push, сначала проверьте версию системы, способ запуска и разрешение уведомлений. Открытая вкладка, ярлык сайта и установленное веб-приложение — разные состояния. Сам факт появления иконки ещё не подтверждает работу подписки и доставки сообщений.
Что известно о поддержке
В документации WebKit поддержка Web Push для добавленных на главный экран веб-приложений описана начиная с iOS и iPadOS 16.4. Запрос разрешения связан с непосредственным действием пользователя. Это не обещание доставки любого сообщения на любой iPhone: остаются настройки устройства, браузерная среда и состояние подписки.
MDN отдельно отмечает различия установки и отсутствие поддержки beforeinstallprompt на iOS. Поэтому нельзя копировать Android-сценарий с одной кнопкой без проверки. Условия сверены 24 октября 2026 года; при выпуске проекта проверяют актуальную матрицу устройств.
Проверка установки по шагам
- Откройте нужный HTTPS-адрес вне встроенного окна мессенджера.
- Проверьте доступный способ добавления на главный экран через меню браузера.
- Запустите сервис по созданной иконке.
- Проверьте начальный экран, вход и переход к нужному разделу.
- Сравните поведение после закрытия и повторного запуска.
Параметры Web App Manifest описывают приложение, но не дают ему права доступа к уведомлениям. Проверяйте адрес файла, содержимое, область запуска и иконки. Ошибка в start_url может отправлять пользователя не в тот раздел или создавать лишний вход.
Учебная матрица диагностики push
| Наблюдение | Что проверить | Что не считать доказательством |
|---|---|---|
| Нет предложения разрешить уведомления | Режим запуска, поддержка API, действие пользователя, прежний отказ | Наличие красивой кнопки «Подписаться» |
| Разрешение есть, сообщения нет | Текущую подписку, ответ сервиса отправки, настройки уведомлений | Один успешный HTTP-ответ приложения |
| Сообщение открывает главную | Маршрут и обработку перехода к заказу | Получение уведомления без проверки нажатия |
| Приходит информация о чужом заказе | Связь подписки с аккаунтом и выход пользователя | Работу на одном тестовом аккаунте |
Учебный пример: пользователь разрешил сообщения, вышел из аккаунта и передал телефон коллеге. Следующая подписка не должна раскрыть старые заказы. Приёмка включает смену пользователя и отзыв разрешения, а не только отправку первого тестового текста.
Проверьте Service Worker и обновление
Service Worker участвует в фоновых сценариях и управлении кешем. Его наличие не означает, что сервер отправки настроен, подписка сохранена и обработчик клика правильно открывает заказ. Эти звенья проверяют отдельно.
При новой версии сравните запуск у пользователя со старым кешем и при чистой установке. Карточку товара можно сохранить для просмотра, но итоговую цену и остаток при оформлении нужно подтвердить по актуальным данным. Для личных сведений определите правила очистки при выходе; не кешируйте всё подряд.
Как оформить ошибку для разработчика
Запишите модель устройства, версию iOS, браузер, адрес, способ установки, состояние разрешения и точное время попытки. Опишите последовательность: «запустил с главного экрана → вошёл → нажал подписку → разрешил → сообщение не пришло». Не передавайте публично токены подписки и личные данные.
Вместо серии случайных повторных запросов подготовьте одну воспроизводимую проверку. Разрешение пользователя, приём сообщения сервисом и показ на устройстве — разные результаты. Их нельзя объединять одной отметкой «уведомления работают».
Как локализовать причину и повторить проверку
Отделите проблему подписки от проблемы перехода
Начните с состояния пользователя: открыт ли правильный аккаунт и разрешены ли уведомления для этого веб-приложения. Затем проверьте наличие актуальной подписки в системе отправки. Отсутствие записи и отказ сервиса доставки — разные причины, для которых нужны разные исправления. В журнале сохраняйте безопасный идентификатор проверки, а не публикуйте весь токен.
Если уведомление появилось, нажмите на него и проверьте конечное содержимое. Для закрытого заказа может потребоваться вход; после него должно сохраниться исходное назначение. Не считайте переход успешным только потому, что открылось любое окно. Проверяйте также удалённый заказ и утраченное право доступа.
Не лечите все ошибки полной очисткой данных
Удаление веб-приложения и повторная установка могут изменить состояние, но скрывают причину. Сначала запишите наблюдения и сравните прежнюю установку с новой. Если проблема возникает только после обновления, проверьте жизненный цикл кеша, совместимость обработчиков и правила актуализации подписки.
Полная очистка может удалить незавершённые действия и настройки пользователя. Если такой шаг действительно нужен, объясните последствия и способ восстановления. Для проектной приёмки важно получить воспроизводимое исправление, а не инструкцию всем клиентам регулярно переустанавливать сервис.
Добавьте проверку сообщения о статусе
В учебном заказе измените статус на сервере и убедитесь, что кабинет показывает его независимо от push. Затем проверьте несколько сообщений об одном событии: пользователь не должен принять технический повтор за новый заказ. При выходе и смене аккаунта повторите ту же последовательность.
В итоговом протоколе запишите отдельные результаты: подписка создана, отправка принята, уведомление показано, переход открыл нужный объект. Неудача одного шага не отменяет результаты остальных и не позволяет объявить поддержку всей системы отсутствующей. Такая детализация помогает разработчику исправить нужное звено и повторно проверить его без реальных клиентских заявок.
Частые ошибки
- Проверять push только во вкладке, а не в нужном режиме веб-приложения.
- Повторно просить разрешение без объяснения ценности.
- Считать отсутствие мгновенного сообщения доказательством несовместимости всей PWA.
- Обновлять кеш без проверки авторизации и персональных данных.
Частые вопросы
PWA работает полностью без интернета?
Только в специально подготовленных сценариях. Просмотр сохранённой инструкции и подтверждение нового заказа требуют разных правил.
Можно гарантировать доставку push?
Нет: результат зависит и от условий вне приложения. Для важных операций оставляйте доступный статус в кабинете и согласованный резервный канал связи.
С чего начать исправление?
С воспроизводимого случая и проверки цепочки. Если проект уже работает, можно обсудить поддержку приложения; если только планируется — разработку PWA с нужными критериями приёмки.


