Реагировать на местные локальные уведомления - PullRequest
0 голосов
/ 25 февраля 2019

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

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

Возможно ли это?

Спасибо:)

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете сделать это с помощью 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...