@webdevep/noty-modul-react-native
v1.1.3
Published
Ссылка на модуль https://modules.dev-webdevep.ru/noty-front-moduls/
Downloads
4
Readme
Фронтенд модуль нотификации
Ссылка на модуль https://modules.dev-webdevep.ru/noty-front-moduls/
Установка npm модуля
Для установки через npm, выполните команду:
npm i @webdevep/noty-modul-react-native
Установка зависимостей
Для работы модуля требуется установить:
- "@react-native-firebase/app": "^17.4.2",
- "@react-native-firebase/messaging": "^17.4.2",
- "@notifee/react-native": "^7.6.1"
Инструкции по установке react-native-firebase: https://rnfirebase.io/
Подключение модуля
Чтобы подключить пуш-уведомления, необходимо инициализировать их в index.js
// ...
import { initPushNotifications } from "@webdevep-modules/noty-modul-react-native";
initPushNotifications(); // можно передать колбэки onReceiveHandlerForeground, onReceiveHandlerBackground и onPressHandler, в которые будет передно входящее сообщение
Также необходимо запросить разрешение на получение пуш-уведомлений и зарегистрировать FCM-токен. Это можно сделать в App.tsx. Пример:
useEffect(() => {
const registerFcm = async () => {
const isPermitted = await requestUserPermission();
if (isPermitted) {
registerFcmToken(url, uid); // url api сервиса нотификации до /api/v1/..., uid - id пользователя
}
};
registerFcm();
}, []); // здесь можно добавить зависимость, чтобы при необходимости снова запрашивать разрашение, если оно не было получено, и/или обновлять токен
Работа с модулем
Пуш-уведомления
Для вывода пуш-уведомлений из модуля экспортируется метод displayLocalNotification, в который можно передать сообщение типа FirebaseMessagingTypes.RemoteMessage. Этот метод работает, только когда приложение находится в активном состоянии, т.е. foreground. Метод можно вызывать по требованию, а также передать в качестве колбэка onReceiveHandler при иниципализации:
initPushNotifications(displayLocalNotification);
Запросы к API
Создаем инстанс класса:
const notificationApi = new NotificationApi(
"https://usnc.dev-webdevep.ru/noty"
);
и получаем доступ к методам:
notificationApi.getInboxMessages(data);
notificationApi.getUnreadMessagesCount(data);
notificationApi.markMessageRead(data);