我使用 flutter_local_notifications 包来设置通知。我有一个通知列表。就我而言,我的应用程序每 5 秒只显示最后一条通知,但我想显示最后 10 条通知。我该怎么做?
这是我的代码:
Future<void> repeatNotification() async {
var androidChannelSpecifics = AndroidNotificationDetails(
'CHANNEL_ID 3',
'CHANNEL_NAME 3',
"CHANNEL_DESCRIPTION 3",
playSound: true,
importance: Importance.max,
priority: Priority.high,
sound: RawResourceAndroidNotificationSound('notification'),
styleInformation: DefaultStyleInformation(true, true),
);
var iosChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
android: androidChannelSpecifics, iOS: iosChannelSpecifics);
SharedPreferences localStorage = await SharedPreferences.getInstance();
String token = localStorage.getString('access_token');
Map<String, String> headers = {
'Content-type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $token'
};
var response =
await http.get(Uri.parse(ApiUtil.GET_ALERT), headers: headers);
var data = json.decode(response.body);
var dataa = (data['data']['data']['data'][0]);
if (data['status'] == 200) {
flutterLocalNotificationsPlugin.show(
0,
dataa['boxName'],
dataa['alert_description'],
platformChannelSpecifics);
} else {
print("no message");
}
}
这是来自服务器的响应:
{
"code": 0,
"message": " success",
"data": {
"data": {
"current_page": 1,
"data": [
{
"id": 69,
"user_id": 53,
"boxIdentifiant": 1924589682265310,
"boxName": "box Malta",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne high",
"alert_level": "info"
},
{
"id": 68,
"user_id": 53,
"boxIdentifiant": 1924589682265310,
"boxName": "box Malta",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression",
"alert_level": "warning"
},
{
"id": 67,
"user_id": 53,
"boxIdentifiant": 1924589682265309,
"boxName": "box masr",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression",
"alert_level": "warning"
},
{
"id": 66,
"user_id": 53,
"boxIdentifiant": 1924589682265308,
"boxName": "box libya",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression",
"alert_level": "warning"
},
{
"id": 62,
"user_id": 53,
"boxIdentifiant": 1924589682265245,
"boxName": "Box Sfax",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression",
"alert_level": "warning"
},
{
"id": 61,
"user_id": 53,
"boxIdentifiant": 1924589682265243,
"boxName": "Box Tunis",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression Roux",
"alert_level": "info"
},
{
"id": 58,
"user_id": 53,
"boxIdentifiant": 1924589682265244,
"boxName": "Box Office",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne Pression Roux",
"alert_level": "warning"
},
{
"id": 57,
"user_id": 53,
"boxIdentifiant": 1924589682265244,
"boxName": "Box Office",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne batterie",
"alert_level": "danger"
},
{
"id": 56,
"user_id": 53,
"boxIdentifiant": 1924589682265300,
"boxName": "box Maroc",
"alert_date": "2021-05-30",
"alert_time": "09:40",
"alert_description": "Panne batterie",
"alert_level": "danger"
},
{
"id": 54,
"user_id": 53,
"boxIdentifiant": 1924589682265246,
"boxName": "boxt mannouba",
"alert_date": "2021-05-30",
"alert_time": "09:45",
"alert_description": "Panne roue",
"alert_level": "info"
}
],
感谢您的帮助
答案 0 :(得分:1)
在这一行中,您将数据显示为通知
var dataa = (data['data']['data']['data'][0])
并且您通过指定索引 0 仅获取第一个元素
然后你显示通知
要显示所有通知,您必须循环将数据数组扔到任何索引处,然后显示通知..像这样
For(int i = 0; i < data['data']['data']['data'].lemgth; i++) { var data = data['data']['data']['data'][i];
//显示带有数据的通知 }