#flutter
#порхание
Вопрос:
Я хочу создать приложение, которое ежедневно отправляет уведомление с фиксированным заголовком, но со случайным описанием, поэтому я попытался создать массив и выбрать случайную строку, но это не работает, он каждый раз выбирает одну и ту же строку, на самом деле он выбирает только один раз и повторяет его. в моем тесте я использовал каждую минуту, но я думаю, что все, что работает для этого, будет работать ежедневно, также я пытался использовать фоновое изображение, но я думаю, что это невозможно.
повторяющийся каждую минуту код: я создал много разных кодов, но это самый разумный.
Future<void> repeatNotification() async {
// define the specifications
var androidChannelSpecifics = AndroidNotificationDetails(
'CHANNEL_ID 3',
'CHANNEL_NAME 3',
"CHANNEL_DESCRIPTION 3",
importance: Importance.Max,
priority: Priority.High,
styleInformation: DefaultStyleInformation(true, true),
playSound: true,
color: Colors.lightBlueAccent,
);
var iosChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics =
NotificationDetails(androidChannelSpecifics, iosChannelSpecifics);
//variables we need in periodical method
print('hi');
int x = 0;
List<String> verses = [
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'0',
'p',
'q'
];
await flutterLocalNotificationsPlugin.periodicallyShow(
x,
'Some title',
'${verses[new Random().nextInt(verses.length - 1)]}',
RepeatInterval.EveryMinute,
platformChannelSpecifics,
payload: 'I hate myself',
);
}
чтобы запустить этот код при открытии приложения, я поместил его в асинхронный метод и поместил метод в initState() домашнего класса
@override
void initState() {
super.initState();
notificationPlugin
.setListenerForLowerVersions(onNotificationInLowerVersions);
notificationPlugin.setOnNotificationClick(onNotificationClick);
waitingDestiny();
}
void waitingDestiny()async{
await notificationPlugin.repeatNotification();
// await notificationPlugin.showDailyAtTime();
}
полный код здесь
Я действительно буду так благодарен, если вы поможете мне решить эту проблему, я застрял в этом на 48 часов без отдыха, я хочу получать только ежедневные уведомления со случайным описанием в нем, я пробовал локальные уведомления, но любой метод будет потрясающим.