Реагировать на собственные локальные уведомления

Я новичок в React Native, и мне нужно реализовать функциональность, при которой приложение должно отправлять пользователю уведомление каждый день в определенное время. Отображаемые данные за каждый день хранятся в файле json на стороне клиента и не изменяются. Уведомления приходят по расписанию. Учитывая, что я надеялся, что может быть способ просто вызвать уведомление из самого приложения.

Кто-нибудь знает способ добиться этого без необходимости отсоединять приложение от выставки? Я не могу использовать «React-Native-Push-Notification» без запуска React-Native Link, и это требует от меня отсоединить приложение. Это правильно?

Это возможно?

Спасибо :)

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
3
0
2 968
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это с экспо, используя функцию 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)

Другие вопросы по теме