2

我的应用程序是expo bare workflow.

使用最新的世博会和世博会通知。

"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 等 UI 的电池优化导致设备处于打盹模式时不会出现通知。我发现的解决方法是要求用户关闭应用程序的电池优化。但我觉得无论电池优化如何,通知都应该覆盖打盹模式......

4

0 回答 0