Флаттер флаттер_local_notifications Расписание зон повторное ежедневное уведомление не работает

#flutter #dart #flutter-local-notification

#трепетать #дротик #флаттер-локальное-уведомление

Вопрос:

Я использую плагин flutter_local_notifications и пытаюсь заставить метод zonedSchedule работать для динамического повторяющегося ежедневного уведомления в определенное время, которое я указываю.

Конфигурация для плагина правильная, так как я могу показать уведомление и повторить уведомление с примером из их документации (через 5 секунд).:

 await flutterLocalNotificationsPlugin.zonedSchedule( 0, 'scheduled title', 'scheduled body', tz.TZDateTime.now(tz.local).add(const Duration(seconds: 5)), const NotificationDetails(  android: AndroidNotificationDetails(  'your channel id', 'your channel name',  channelDescription: 'your channel description')), androidAllowWhileIdle: true, uiLocalNotificationDateInterpretation:  UILocalNotificationDateInterpretation.absoluteTime);  

То, что я пытаюсь сделать, — это запланировать повторение уведомления каждый день в определенное время. Я пытаюсь использовать эту логику:

 tz.TZDateTime _nextInstanceOf(int time) {  // print('wl here!!'); // print('time: '); // print(time); final now = tz.TZDateTime.now(tz.local); var scheduledDate =  tz.TZDateTime(tz.local, now.year, now.month, now.day, time, 31, 0); // print("scheduledDate: "); // print(scheduledDate); if (scheduledDate.isBefore(now)) {  // print('wl update!!');  scheduledDate = scheduledDate.add(const Duration(days: 1)); } return scheduledDate;  

}

и

 Futurelt;voidgt; _scheduleDailyNotification(int time, String msg) async { print('wl schedule notification!!'); await flutterLocalNotificationsPlugin.zonedSchedule(  0,  'Reminder:',  msg,  _nextInstanceOf(time),  const NotificationDetails(  android: AndroidNotificationDetails(  'daily notification channel id',  'daily notification channel name',  'daily notification description'),  ),  androidAllowWhileIdle: true,  uiLocalNotificationDateInterpretation:  UILocalNotificationDateInterpretation.absoluteTime,  payload: 'wltry' );  

}

Любая помощь будет признательна.