SHA256
Add WS push events, PWA/FCM scaffolding, and direct messaging MVP
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# Настройка 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-ограничения.
|
||||
Reference in New Issue
Block a user