У меня есть приложение, которое должно отправлять уведомления каждый день со случайными сообщениями пользователю в зависимости от того, сколько уведомлений они хотят (до 5 уведомлений в день) и в какое время они хотят (например, уведомления будут срабатывать только между 6:00 - 9:00 каждый день).
Для уточнения я создаю функциональность с идеей рассылки случайных вдохновляющих сообщений, которые я извлекаю из жестко закодированной переменной массива или файла json.
В настоящее время я использую этот пакет: https://github.com/zo0r/react-native-push-notification для создания локального уведомления.
Я попытался создать функцию, которая возвращает строку для параметра сообщения localNotificationSchedule, но когда я делаю это, вместо обычной строки, это не показывает уведомление.
PushNotification.localNotificationSchedule({
id : '1',
userInfo : { id: userId },
message : () => {
return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5); //trying to return random string every time notification fires.
},
date : moment(Date.now()).add(2, 'seconds').toDate(),
repeatType : 'day',
});
Я подумал о том, чтобы использовать другой подход, например, безголовый реактивный JS, но только для android.
Также рассматривается использование https://www.npmjs.com/package/react-native-background-fetch. Но у меня сложный интервал для уведомлений. Например, пользователь может настроить запуск уведомлений с 6:00 до 6:30 ежедневно и запускать 5 уведомлений. В этом интервале уведомления будут запускаться каждые 6 минут.
Но минимальный интервал реакции-родной-фоновой выборки составляет всего 15 минут.
Я знаю, что это можно сделать, используя вместо этого уведомление pu sh, но при этом пользователю потребуется соединение, чтобы он мог получить уведомление, что не идеально для этого случая.
Я видел это из приложения Ios, так что я знаю, что этого можно достичь.