1.3.6 • Published 2 months ago

push-web-widget v1.3.6

Weekly downloads
-
License
proprietary
Repository
-
Last release
2 months ago

push-web-widget

Widget для отображения web-push сообщений

Использование:

  1. Регистрируемся или аутентифицируемся на Firebase
  2. Получаем доступ к проекту web-push-widget в консоли firebase
  3. Kлонируем данный репозиторий из гитлаба
  4. Подтягиваем зависимости с помощью команды yarn
  5. Устанавливаем инструменты firebase через npm install -g firebase-tools или yarn global add firebase-tools
  6. Аутентифицируемся в firebase через команду firebase login (нужно указать ту же почту, на которую получали доступ к web-push-widget выше)
  7. Запускаем локально yarn start
  8. Переходим на http://localhost:5000
  9. Разрешаем отправку уведомлений

Разработка:

  • Отправка пушей производится из админки push-платформы https://pushservertest.edna.ru/
  • Наш аккаунт для тестирования eshkirya / svVr0ner
  • На http://localhost:5000 смотрим параметры устройства - адрес и UID
  • На https://pushservertest.edna.ru/ переходим в Список устройств, находим устройство с нашим UID
  • Выбираем Отправить сообщение, заполняем обязательные поля
  • Если все хорошо - получим пуш-уведомление на http://localhost:5000

Структура проекта:

  • src/demo_page и src/prod_page это макеты для демо и прод стендов соответственно (там же стили к ним)
  • проект лежит в папке src/modules
  • EventEmitter - публичный класс для подписки и отправки событий

Особенности проекта:

  • обработка и вывод всех уведомлений происходит в сервис воркере
  • важно помнить, что сервис воркер имеет свой отдельный поток выполнения и не имеет доступа к основному потоку (то есть доступа к объекту window)
  • общение между потоками сейчас реализвано через BroadcastChannel
  • если возникает ошибка "Этот сайт был обновлен в фоновом режиме", значит где-то в воркере не прописан event.waitUntil() или дожидаемся не всего, что нужно
  • стилизовать пуш уведомление невозможно
  • если заметили, что sw не обновился, возможно он ждет активации - это нужно проверить в devtools во вкладке Application - Service Workers (свежий воркер может быть неактивным - нажать 'skip waiting')
  • при возникновении ошибки 'доступ к localhost запрещен', нужно перезапустить ВПН
  • документацию по инициализации Firebase приложения можно посмотреть на сайте Firebase (firebase-messaging)

Dev-Использование:

  1. Выполняем первые 7 пунктов из раздела Использование
  2. Запускаем локально в двух окнах терминала: yarn start, yarn watch:webpack
  3. Переходим на http://localhost:5000

Регистрация нового получателя уведомлений

  1. Создать новое приложение в рамках одного проекта на Firebase
  2. Передать конфиг приложения в публичный метод initFirebaseApp при запуске площадки

Возможные проблемы с получением токена

  • Проверять, что конфиг принадлежит нужному проекту (можно посмотреть по урлу, на который идет ПОСТ запрос за токеном)
  • Проверять актульность VAPID key (если что просто генерить новый)

Стенды

Документация

Библиотека Web https://wiki.edna.ru/pages/viewpage.action?pageId=15471891#id-Индексдокументов-БиблиотекаWeb Стандарт PushAPI https://www.w3.org/TR/push-api/

1.3.6

2 months ago

1.3.5

2 months ago

1.3.4

2 months ago

1.3.3

2 months ago

1.3.2

2 months ago

1.3.1

2 months ago

1.3.0

2 months ago