如何每天用飞镖重复本地通知?以及如何解析'2:00 AM'时间格式到时区?



我正在尝试对患者的用药时间进行每日剩余,我正在使用flatter_local_notifications,效果很好。这是我的功能,我想让它每天重复,

void scheduleAlarm() async {
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'alarm_notif',
'alarm_notif',
'Channel for Alarm notification',
icon: 'codex_logo',
sound: RawResourceAndroidNotificationSound('notification_sound'),
largeIcon: DrawableResourceAndroidBitmap('drug'),
);
tz.initializeTimeZones();
tz.setLocalLocation(tz.getLocation('America/Detroit'));
var iOSPlatformChannelSpecifics = IOSNotificationDetails(
sound: 'notification_sound.wav',
presentAlert: true,
presentBadge: true,
presentSound: true);
var platformChannelSpecifics = NotificationDetails(
android: androidPlatformChannelSpecifics,
iOS: iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.zonedSchedule(
0,
'Panadol',
'Don't forget to take your medicine 2:00 AM',
tz.TZDateTime.now(tz.local).add(Duration(seconds: 5)),
platformChannelSpecifics,
androidAllowWhileIdle: true,
);
}

我想更改这条线,这样我就可以通过从TimePicker得到的一系列时间,用这种格式'2:00AM'

tz.TZDateTime.now(tz.local).add(Duration(seconds: 5)),

使用现有的代码,您可以使用这样的cron模块来安排每天的通知。

cron.schedule(Schedule.parse('0 2 */1 * *'), () async {
scheduleAlarm();
print('Run scheduled notification');
});

请注意,您的通知延迟了5秒,但请注意,zonedSchedule()也需要一个未来的日期才能执行。

如果您不熟悉cron表达式,可以使用crontab.guru来帮助您。

注意:Cron需要运行应用程序才能工作。

相关内容

  • 没有找到相关文章

最新更新