#flutter #flutter-dependencies
#флаттер #флаттер-зависимости
Вопрос:
Как я могу запланировать ежемесячное или еженедельное уведомление в flutter? Цель состоит в том, чтобы оно служило напоминанием пользователю о чем-то…
вот мой код
void showMonthlyAtDayTime() async {
//var scheduledNotificationDateTime = DateTime.now().add(Duration(seconds: 10));
var time = Time(12, 6, 0);
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'alarm_notif',
'Scheduled notification', // name of the notif channel
'A scheduled notification', // description of the notif channel
icon: 'question',
largeIcon: DrawableResourceAndroidBitmap('question'),
);
var iOSPlatformChannelSpecifics = IOSNotificationDetails(
presentAlert: true,
presentBadge: true,
presentSound: true);
var platformChannelSpecifics = NotificationDetails(
android: androidPlatformChannelSpecifics,
iOS: iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.showMonthlyAtDayTime(
0,
'Title',
'Body',
Day.Tuesday,
time,
platformChannelSpecifics);
}
Код имеет (красное) подчеркивание под showMonthlyAtDayTime в
строка «ждать flutterLocalNotificationsPlugin.showMonthlyAtDayTime»
и «День.Строка вторника…
Как я должен изменить приведенный выше код? так что пользователь будет получать уведомления один раз в каждый месяц каждого года о чем-то.
Комментарии:
1. Почему бы вам не использовать push-уведомления для достижения того же, а не создавать уведомления из интерфейса.
2. как вы это делаете? Я новичок в разработке Flutter
3. Вы можете посмотреть это видео fireship.io/lessons/flutter-push-notifications-fcm-guide
4. Я только что обновил описание вопроса… что касается fire flutter, у меня много проблем с интеграцией с firebase… Я не уверен, почему, это не код, а случаи pod-файлов…
5. Вам не нужно использовать удаленные (PUSH) уведомления для напоминаний. Запланированные напоминания лучше создавать с локальными уведомлениями без участия сервера. Итак, вы на правильном пути, если используете плагин flutter_local_notifications. Почему это не работает — может быть несколько причин. Пожалуйста, убедитесь, что вы ничего не пропустили в настройках плагина — pub.dev/packages/flutter_local_notifications#-android-setup и pub.dev/packages/flutter_local_notifications#-ios-setup
Ответ №1:
Некоторые методы были удалены в последних версиях.
Это код, который я нашел для еженедельного повторения уведомлений с использованием flutter_local_notifications.
Future<void> _scheduleWeeklyTenAMNotification() async {
await notificationsPlugin.zonedSchedule(
0,
'weekly scheduled notification title',
'weekly scheduled notification body',
_nextInstanceOfTenAM(),
const NotificationDetails(
android: AndroidNotificationDetails(
'weekly notification channel id',
'weekly notification channel name',
'weekly notificationdescription'),
),
androidAllowWhileIdle: true,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
matchDateTimeComponents: DateTimeComponents.dayOfWeekAndTime);
}
tz.TZDateTime _nextInstanceOfTenAM() {
final tz.TZDateTime now = tz.TZDateTime.now(tz.local);
tz.TZDateTime scheduledDate =
tz.TZDateTime(tz.local, now.year, now.month, now.day, 10);
if (scheduledDate.isBefore(now)) {
scheduledDate = scheduledDate.add(const Duration(days: 1));
}
return scheduledDate;
}
этот код скопирован из примера приложения, предоставленного https://pub.dev/packages/flutter_local_notifications
вот ссылка на git hub, нажмите здесь