Schedule notification not working (Flutter)

22 views Asked by At

To show notification I an using flutter_local_notifications package.

I am getting notification, but schedule notification is not working.

Here is my code

initState()

@override
  void initState() {
    // TODO: implement initState
    super.initState();

    notificationmanager.initialize();
  }

initialize()

Future<void> initialize() async {
    // Инициализация временных зон
    tz.initializeTimeZones();

    // Инициализация плагина локальных уведомлений
    flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();

    // Конфигурация плагина локальных уведомлений
    var initializationSettingsAndroid =
        AndroidInitializationSettings('@mipmap/ic_launcher');
    var initializationSettingsIOS = DarwinInitializationSettings();
    var initializationSettings = InitializationSettings(
        android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
    await flutterLocalNotificationsPlugin.initialize(initializationSettings);
  }

scheduleNotification()

// Метод для запланирования уведомления на определенное время
  Future<void> scheduleNotification(DateTime scheduledDate) async {
    var androidPlatformChannelSpecifics = AndroidNotificationDetails(
      'channel_id', // id канала
      'channel_name', // имя канала
      channelDescription: 'channel_description', // описание канала
      importance: Importance.max,
      priority: Priority.high,
    );
    var iOSPlatformChannelSpecifics = DarwinNotificationDetails();
    var platformChannelSpecifics = NotificationDetails(
      android: androidPlatformChannelSpecifics,
      iOS: iOSPlatformChannelSpecifics,
    );

    // Создаем экземпляр объекта TZDateTime для передачи времени уведомления в нужном формате
    var scheduledDateTime = tz.TZDateTime.from(scheduledDate, tz.local);

    // Запланировать уведомление на определенное время
    await flutterLocalNotificationsPlugin.zonedSchedule(
      1, // ID уведомления
      'Напоминание', // Заголовок уведомления
      'Пора выполнить задачу!', // Текст уведомления
      scheduledDateTime, // Время уведомления
      platformChannelSpecifics,
      androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle,
      // androidAllowWhileIdle:
      //     true, // Разрешить отправку уведомления, когда устройство находится в режиме Doze
      uiLocalNotificationDateInterpretation:
          UILocalNotificationDateInterpretation.absoluteTime,
      // matchDateTimeComponents:
      //     DateTimeComponents.time, // Совпадение только по времени
    );
  }

and calling method notificationmanager

notificationmanager.scheduleNotification(
                      DateTime.now().add(Duration(seconds: 5)));
0

There are 0 answers