Service Worker. Устранение неполадок

Отслеживание событий и поведения

Email

Омниканальность

Автоматизация

Service Worker. Устранение неполадок

Скрипт для веб-пушей eSputnik загружается через файл Service Worker, который называется sw.js и размещается в корне сайта. Проблема может возникнуть в случаях, если в коде сайта уже используются файлы с таким же названием, или если на сайте уже используется другой Service Worker.

1. Изменение названия Service Worker sw.js

Некоторые конструкторы (Хорошоп, Wix и др.) по умолчанию размещают файл sw.js в корне сайтов. Поскольку файл eSputnik имеет то же название, могут возникать ошибки.

Для избежания неполадок, в скрипте eSputnik вы можете переименовать файл и при необходимости указать к нему путь.

Для этого найдите в коде скрипта eSputnik функцию инициализации

es("pushOn");

и добавьте к этой записи параметры в таком формате:

es("pushOn", {'service-worker': {'relUrl': '/push-worker.js'} });

где параметр 'relUrl' — путь к файлу и его произвольное название.

Редактирование кода

2. Объединение Service Worker от eSputnik и PWA

Сайты с PWA (progressive web app) уже используют Service Worker, т. е. они содержат JavaScript-файл с определенным набором функций. Чтобы добавить на сайт возможность подписки и отправки веб-пушей через eSputnik, вам нужно в конце JavaScript-кода вашего Service Worker добавить строчку

importScripts('https://push.esputnik.com/service-worker.js');

Обратите внимание

Названия функций, переменных или обработчиков в вашем Service Worker и Service Worker от eSputnik могут совпасть. В таком случае возможны конфликты, приводящие к сбоям в работе как вашего PWA, так и скрипта eSputnik.

Ниже приведен перечень названий методов (функций) в файле eSputnik:

  • onPushNotification
  • getNotificationContent
  • showNotification
  • getNotificationData
  • determineClickedLink
  • collectActionLinks
  • trackNewServiceWorkerActivation

В случае совпадения этих названий с названиями в вашем Service Worker, будет вызываться функция, которая расположена в коде последней. Например, если код согласно этой инструкции заканчивается строчкой

importScripts('https://push.esputnik.com/service-worker.js');

то корректно отработает функциональность, связанная с веб-пушами.

Остались вопросы?
Специалисты обязательно ответят и помогут решить вашу проблему!
Обратный звонок
Оставьте заявку – и наш специалист свяжется с вами в рабочее время.
Отправить заявку
Консультация в чате
Готовы к вашим вопросам!
Написать в чат
Электронная почта
Напишите в службу поддержки eSputnik.
Отправить email