Как убрать push уведомление из списка во Flutter?
У Firebase Messaging есть метом onBackgroundMessage который отслеживает пуш уведомления, когда приложение завершено. При нажатие на пуш он исчезнет из списка, но как сделать так чтобы при открытие приложение не через пуш а просто запустив его ,можно было закрыть определенное уведомление из списка?
Ответы (1 шт):
Решил это через flutter_local_notifications
Вешаете на метод FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
Функцию которая будет обрабатывать фоновые уведомление когда приложение выключено
//Обработка фоновых уведомлений
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
print("Handling a background message: ${message.messageId}");
final localNotificationService = ConnectorServices.DI<LocalNotificationsService>();
localNotificationService.flutterLocalNotificationsPlugin.show(
message.data.hashCode,
message.data['title'],
message.data['body'],
NotificationDetails(
android: AndroidNotificationDetails(
LocalNotificationsService.channel.id,
LocalNotificationsService.channel.name,
),
));
}
Далее в другом месте (например при открытие приложение вызываете метод cancelAll или cancel(notification_id) и у вас закроются или все или определенный пуш в списке пуш уведомлений.
А вот как получить актуальный список висящих пуш уведомлений, я пока не узнал. (Список нужен чтобы закрывать определенный пуш уведомления, например если вы реализуете мессенджер вам нужно закрывать пуш уведомления по конкретному чату при открытие, а не удалять все из списка.) Сами методы от плагина flutter_local_notifications
// cancel the notification with id value of zero
await flutterLocalNotificationsPlugin.cancel(0);
// 0 is your notification id
Cancelling/deleting all notifications
await flutterLocalNotificationsPlugin.cancelAll();