.. _mobile-push: Уведомления ====================== .. _mobile-push-init: Инициализация push-уведомлений -------------------------------------------------------------- При запуске приложения инициализируем push-уведомления ``src/helpers/notifications.helper.ts initNotifications`` * запрашиваем у пользователя разрешение на приём push-уведомлений * подписываемся на события открытия приложения по уведомлению: ``getInitialNotification``, ``onNotificationOpenedApp`` * в случае отсутствия разрешения на приём push-уведомлений отписываемся ``unsubscribeFromPushWorker`` .. _mobile-push-subscribe: Подписка на 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-уведомлений .. note:: При подписке на push-уведомления дополнительно передаётся локаль приложения ``locale``. .. _mobile-push-token-refresh: Обновление токена ---------------------------------- ``src/store/actions/settings.actions.ts onTokenRefresh, sendLanguageSettings`` * при обновлении токена FCM необходимо передать его в запросе ``/gateway/api/records/mutate`` с указанием **id подписки** .. note:: При обновлении токена и смене языка интерфейса приложения дополнительно передаётся локаль приложения ``locale``. .. _mobile-push-unsubscribe: Отписка от push-уведомлений ------------------------------------------------------ ``src/store/actions/settings.actions.ts unsubscribeFromPush`` * выполняем запрос ``/gateway/api/records/delete``, указав **id подписки**, полученный на шаге подписки на уведомления .. _mobile-push-open: Открытие push-уведомлений ---------------------------------------------------- ``src/helpers/notifications.helper.ts getInitialNotification, onNotificationOpenedApp`` При открытии задачи из уведомления важен ``taskId``, переданный в payload уведомления.