Как проверить установку сервис-воркера на сайте, если веб-пуш не приходит в браузер
  • 10 Feb 2023
  • 1 минута
  • Темная тема
    Светлая тема
  • формат pdf

Как проверить установку сервис-воркера на сайте, если веб-пуш не приходит в браузер

  • Темная тема
    Светлая тема
  • формат pdf

Article Summary

Проблема: пуш отправился, но в браузер не пришел.

Одна из возможных причин - некорректная установка сервис-воркера. О правильной установке читайте в статье.
Разберемся, как проверить работу сервис-воркера.

Проверяем статус сервис-воркера в браузере.

Для этого открываем инструменты разработчика -> вкладку Application -> ServiceWorkers:

Снимок экрана 2021-10-15 в 16.39.39.png

Статус должен быть "activated and is running".

1. Сервис-воркера нет.

Ищем на вкладке elements функцию webpush.create.
Если её нет, то сервис-воркер не инициализируется. Дополните скрипт сайта.

2. Если сервис-воркер есть, проверяем файл

Открываем на вашем сайте следующий адрес site.ru/mindbox-services-worker.js(site замените на своей домен)

Единственное, что должно быть на странице:

importScripts("https://api.mindbox.ru/scripts/service-worker.js");

Скрипт обязательно должен импортироваться, чтобы код всегда оставался актуальным.

3. Есть чужой сервис-воркер.

Из-за этого наш сервис-воркер либо не регистрируется, либо происходит регистрация поверх него.

Как проверить порядок регистрации сервис-воркера

  • Отвязываем сервис-воркер от сайта: нажать на той же вкладке Application на unregister:

Снимок экрана 2021-11-11 в 15.27.53 — копия.png

Он переходит в статус 'deleted'.

  • Обновляем страницу, не закрывая инструменты разработчика (ctrl/command + r).

  • Смотрим, происходит ли перезапись сервис-воркера.
    Это может быть причиной того, что у нас создается карточка клиента с токеном для браузера, но при отправке у браузера будет уже другой токен - связанный с другим сервис-воркером, из-за чего клиент не сможет получить наши пуши.

Что такое вебпуши: возможности и механики в канале Web Push