expo-уведомления scheduleNotification не работает должным образом на устройствах

#android #ios #react-native #expo #expo-notifications

#Android #iOS #реагировать-родной #expo #expo-уведомления

Вопрос:

Мое приложение из expo bare workflow .

Использование последних уведомлений expo amp; expo.

 "expo": "^39.0.0",
"expo-notifications": "~0.7.2",
  

Проблема

Я пытаюсь запланировать повторное уведомление каждый день утром с 9 утра и вечером с 9 вечера каждый день. Каждый раз, когда пользователь открывает приложение, я отменяю все старые уведомления и планирую новое (пробовал с проверкой запланированного уведомления, если не существует нового расписания). Похоже, что в симуляторе Android это работает нормально, когда я устанавливаю приложение в телефоне, оно очень редко или несколько раз ничего не вызывает в течение недели. Я только что следовал приведенной документации для повторных локальных уведомлений. Нужна помощь…

Код

 // Cancel All notifications
await Notifications.cancelAllScheduledNotificationsAsync();
//9AM notification
        await Notifications.scheduleNotificationAsync({
            identifier: 'morning-1',
            content: {
                title: `Good Morning!`,
                subtitle: 'Greetings',
                body: `Have a great day`,
                sound: true,
                color: "#ffffff",
                data: {
                    to: 'new-log'
                }
            },
            trigger: {
                hour: 9,
                minute: 0,
                repeats: true
            }
        });
    

   //9PM notification
    await Notifications.scheduleNotificationAsync({
                identifier: 'night-notification',
                content: {
                    title: `Good Night :)`,
                    subtitle: 'Have a great sleep :D',
                    body: `Have a great sleep :D',
                    sound: true,
                    data: {
                        to: 'new-log'
                    },
                    color: "#000000"                },
                trigger: {
                    hour: 21,
                    minute: 0,
                    repeats: true
                }
            });
    
  

Но он не запускает уведомления должным образом, что я заметил, он будет показывать уведомления, например, 3 дня один раз или еженедельно один раз, а иногда и ничего. это вообще не срабатывает в заданное время.

Обновление, по-видимому, его оптимизация батареи пользовательских интерфейсов, таких как MIUI, Oxygen OS, из-за чего уведомление не отображается, когда устройство находится в режиме ожидания. Обходной путь, который я нашел, — попросить пользователя отключить оптимизацию заряда батареи для приложения. Но я чувствую, что уведомления должны переопределять dozemode независимо от оптимизации батареи…

Комментарии:

1. Нашли ли вы какое-либо другое решение, кроме отключения оптимизации заряда батареи?

2. ничего. я прекратил работу над этим