Я новичок в React Native, и мне нужно реализовать функциональность, при которой приложение должно отправлять пользователю уведомление каждый день в определенное время. Отображаемые данные за каждый день хранятся в файле json на стороне клиента и не изменяются. Уведомления приходят по расписанию. Учитывая, что я надеялся, что может быть способ просто вызвать уведомление из самого приложения.
Кто-нибудь знает способ добиться этого без необходимости отсоединять приложение от выставки? Я не могу использовать «React-Native-Push-Notification» без запуска React-Native Link, и это требует от меня отсоединить приложение. Это правильно?
Это возможно?
Спасибо :)





Вы можете сделать это с экспо, используя функцию scheduleLocalNotificationAsync (см. эти документы для более подробной информации). Сначала убедитесь, что у вас есть разрешение на отправку уведомлений. Обратите внимание, что если уведомление срабатывает, когда приложение находится на переднем плане, вы не увидите уведомление, но вы все равно можете прослушать это событие.
я. Попросить разрешения
import { Permissions } from 'expo';
// ... somewhere before scheduling notifications ...
const { status } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
if (status !== 'granted') {
await Permissions.askAsync(Permissions.NOTIFICATIONS);
}
II. Запланировать уведомление
import { Notifications } from 'expo';
const notification = {
title: 'Hi there!',
body: 'Tap me to open the app.',
android: { sound: true }, // Make a sound on Android
ios: { sound: true }, // Make a sound on iOS
};
const options = {
time: Date.now() + 10000, // Schedule it in 10 seconds
repeat: 'day', // Repeat it daily
};
// ... somewhere after requesting permission ...
const id = Notifications.scheduleLocalNotificationAsync(notification, options)
// If you want to react even when your app is still in the
// foreground, you can listen to the event like this:
Notifications.addListener(() => {
console.info('triggered!');
});
III. Отменить запланированное уведомление
Вы можете использовать возвращенный идентификатор функции scheduleLocalNotificationAsync, чтобы отменить уведомление.
import { Notifications } from 'expo';
// ... get the id of the scheduled notification ...
Notifications.cancelScheduledNotificationAsync(id)