Web Push может стабильно работать в Chrome и при этом не приходить в Safari. Это не всегда ошибка отправки: у Safari свои ограничения и требования.
Если часть аудитории сидит на iPhone или Mac, неработающие уведомления снижают возвраты пользователей и эффективность напоминаний.
Коротко: нужно проверить поддержку Safari, разрешения, service worker, manifest, endpoint подписки и формат payload.Почему возникает проблема
Проблема бывает в старой версии Safari, неправильном manifest, scope service worker, отсутствии разрешения, устаревшей подписке или серверной отправке без учета особенностей endpoint.
Что проверяю в первую очередь
- какая версия Safari и устройство
- зарегистрирован ли service worker
- сохраняется ли push subscription
- есть ли разрешение на уведомления
- что возвращает push endpoint
Как исправляю
Я проверяю отдельно клиентскую подписку, серверное хранение endpoint и отправку уведомления.
- исправляю manifest и scope
- обновляю регистрацию service worker
- разделяю обработку браузеров
- удаляю устаревшие подписки
- добавляю диагностику доставки
Что подготовить перед обращением
- ссылка на сайт или кабинет
- скриншот проблемы
- пример пользователя, заказа или события
- время, когда ошибка повторялась
- доступы или выгрузка логов без лишних персональных данных
Какой результат нужен
Safari либо получает push корректно, либо пользователь видит честный альтернативный сценарий уведомлений.
Чего лучше не делать
Не считайте, что если Chrome работает, значит сервер точно настроен правильно для всех браузеров.
Вопросы и ответы
Safari поддерживает Web Push?
Да, но с ограничениями и требованиями, зависящими от версии и платформы.
Почему подписка есть, но push не приходит?
Endpoint мог устареть или payload не подходит для конкретного браузера.
Нужна ли PWA?
Для части iOS-сценариев установка как приложение важна.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот, лог ошибки или пример заказа, и я подскажу, с чего безопасно начать исправление.
Итог
Web Push для Safari нужно проверять отдельно: manifest, service worker, разрешения, endpoint и формат отправки.