Ваша задача заключается в том, чтобы обрабатывать уведомления в приложении, которое уже открыто, используя пакеты `awesome_notifications` и `awesome_notifications_fcm`.
К сожалению, модуль `awesome_notifications_fcm` не поддерживает обработку событий уведомлений при активном состоянии приложения так, как это делает стандартный Firebase Messaging. Однако вы можете использовать подход с обработкой данных, отправляемых с FCM.
Вот общая схема того, как можно обрабатывать уведомления вручную при открытом приложении.
1. **Настройка FCM**: Первым делом убедитесь, что ваш FCM настроен правильно в Firebase Console и вы можете получать сообщения.
2. **Перехват сообщений**: Используйте метод `onFcmSilentDataHandle` для перехвата данных, когда приложение открыто.
3. **Создание уведомления вручную**: Как только вы получаете данные в `onFcmSilentDataHandle`, вы можете создать уведомление, используя `awesome_notifications`.
Вот пример:
```dart
import 'package:awesome_notifications/awesome_notifications.dart';
import 'package:awesome_notifications_fcm/awesome_notifications_fcm.dart';
import 'package:flutter/material.dart';
void main() {
AwesomeNotifications().initialize(
// Инициализация
);
AwesomeNotificationsFcm().setFcmHandler(
onFcmSilentDataHandle: (data) {
// Обрабатываем данные здесь
handleNotificationCreate(data);
},
);
runApp(MyApp());
}
void handleNotificationCreate(Map<String, dynamic> data) {
// Здесь вы можете извлечь данные из сообщения
String title = data['notification']['title'];
String body = data['notification']['body'];
// Создаем уведомление
AwesomeNotifications().createNotification(
content: NotificationContent(
channelKey: 'basic_channel',
title: title,
body: body,
),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
// Ваше приложение
);
}
}
```
### Что важно учесть:
1. **Проверка данных**: Убедитесь, что структура данных, которую вы получаете, соответствует вашему ожиданию.
2. **Permissions**: Убедитесь, что ваше приложение имеет необходимые разрешения для отображения уведомлений.
3. **Планирование уведомлений**: Если вам нужно, чтобы уведомления приходили после выполнения какого-то действия в приложении, вы также можете рассмотреть возможность отправки уведомлений через API или встроенные функции приложения.
Таким образом, вы можете обрабатывать входящие уведомления и при активном состоянии приложения, создавая их вручную с помощью `awesome_notifications`.