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