Уведомления

Инициализация push-уведомлений

При запуске приложения инициализируем push-уведомления src/helpers/notifications.helper.ts initNotifications

  • запрашиваем у пользователя разрешение на приём push-уведомлений

  • подписываемся на события открытия приложения по уведомлению: getInitialNotification, onNotificationOpenedApp

  • в случае отсутствия разрешения на приём push-уведомлений отписываемся unsubscribeFromPushWorker

Подписка на push-уведомления

src/store/actions/settings.actions.ts subscribeToPushWorker

  • проверяем разрешение на приём уведомлений

  • выполняем запрос /gateway/alfresco/alfresco/s/citeck/global-properties?name=ecos.server.tenant.id

  • получаем токен FCM

  • полученный токен и Tenant ID передаём серверу в запросе /gateway/api/records/mutate

  • id подписки, полученный в ответе, сохраняется в локальном хранилище для обновления токена и отписки от push-уведомлений

Примечание

При подписке на push-уведомления дополнительно передаётся локаль приложения locale.

Обновление токена

src/store/actions/settings.actions.ts onTokenRefresh, sendLanguageSettings

  • при обновлении токена FCM необходимо передать его в запросе /gateway/api/records/mutate с указанием id подписки

Примечание

При обновлении токена и смене языка интерфейса приложения дополнительно передаётся локаль приложения locale.

Отписка от push-уведомлений

src/store/actions/settings.actions.ts unsubscribeFromPush

  • выполняем запрос /gateway/api/records/delete, указав id подписки, полученный на шаге подписки на уведомления

Открытие push-уведомлений

src/helpers/notifications.helper.ts getInitialNotification, onNotificationOpenedApp

При открытии задачи из уведомления важен taskId, переданный в payload уведомления.