Вы можете сделать это с помощью expo, используя функцию scheduleLocalNotificationAsync
(подробнее см. эти документы ).Убедитесь, что у вас есть разрешение на отправку уведомлений в первую очередь.Обратите внимание, что если уведомление срабатывает, когда приложение находится на переднем плане, вы не увидите уведомление, но вы все равно можете прослушать это событие.
i.Запросите разрешение
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.log('triggered!');
});
iii.Отмена запланированного уведомления
Вы можете использовать возвращенный идентификатор функции scheduleLocalNotificationAsync
для отмены уведомления.
import { Notifications } from 'expo';
// ... get the id of the scheduled notification ...
Notifications.cancelScheduledNotificationAsync(id)