SHiNE-server/DOC/api/PWA_FCM_SETUP.md

2.4 KiB
Raw Blame History

Настройка PWA + FCM для веб-клиента (Chrome/Edge/Firefox/Safari iOS)

1) Что нужно создать в Firebase

  1. Создать проект Firebase.
  2. Включить Cloud Messaging.
  3. Создать Web App и получить конфиг:
    • apiKey
    • authDomain
    • projectId
    • messagingSenderId
    • appId
  4. В Cloud Messaging -> Web Push certificates сгенерировать VAPID key.
  5. Для серверной отправки взять Server key (legacy) или настроить HTTP v1 (service account).

2) Куда вставить токены в клиенте

Файл: shine-UI/index.html и shine-UI/firebase-messaging-sw.js.

Заполнить:

  • window.__SHINE_FIREBASE_CONFIG__
  • window.__SHINE_FIREBASE_VAPID_KEY__
  • FIREBASE_CONFIG (в service worker)

3) Куда вставить серверный ключ FCM

Файл: src/main/resources/application.properties

Добавить:

fcm.server.key=YOUR_FCM_SERVER_KEY

4) PWA требования

  1. Открывать сайт только по HTTPS (или localhost).
  2. Разрешить уведомления в браузере.
  3. Убедиться, что manifest.webmanifest доступен.
  4. Убедиться, что firebase-messaging-sw.js зарегистрирован.

5) Safari / iPhone (iOS)

  • Нужен iOS 16.4+.
  • Пользователь должен добавить сайт на Home Screen.
  • После запуска PWA с Home Screen дать разрешение на уведомления.
  • Без Home Screen web push в Safari iOS не работает.

6) Проверка

  1. Логин в приложении.
  2. Клиент вызывает UpsertPushToken и отправляет FCM токен на сервер.
  3. Вызов SendDirectMessage пользователю без активной WS доставки.
  4. Сервер шлет push через FCM.

7) Поддержка разных браузеров

  • Chrome/Edge/Opera/Android Browser: FCM web push поддерживается нативно.
  • Firefox: поддержка web push есть, но тестировать отдельно (поведение токенов отличается).
  • Safari macOS/iOS: web push есть, но требуется PWA режим и Apple-ограничения.