OnDidReceiveBackgroundNotificationResponse не запускается в локальных уведомлениях флаттера ⇐ Android
OnDidReceiveBackgroundNotificationResponse не запускается в локальных уведомлениях флаттера
Это моя основная функция void:
Future RemoteMessageHandler (сообщение RemoteMessage) асинхронный {} void main() асинхронный { ВиджетыFlutterBinding.ensureInitialized(); дождитесь Firebase.initializeApp(); FirebaseMessaging.onBackgroundMessage(remoteMessageHandler); LocalNotificationService.initialize(); Настройки уведомлений = ждут FirebaseMessaging.instance.requestPermission( предупреждение: правда, значок: правда, звук: правда, ); запуститьApp(MyApp()); } а это моя местная служба уведомлений:
класс LocalNotificationService { статический окончательный FlutterLocalNotificationsPlugin _notificationsPlugin = Плагин FlutterLocalNotifications(); @pragma('vm:точка входа') статическая пустота onDidReceiveBackgroundNotificationResponse( NotificationResponse notificationResponse) async { печать('фон'); } статический Future инициализировать() асинхронный { // Настройки инициализации для Android const InitializationSettings инициализацияSettings = Настройки инициализации( Android: AndroidInitializationSettings("@mipmap/ic_launcher"), ); // Создаем здесь канал уведомлений по умолчанию const AndroidNotificationChannel канал = AndroidNotificationChannel( 'default_notification_channel_id', «Канал уведомлений по умолчанию», важность: Важность.макс, ); _notificationsПлагин .resolvePlatformSpecificImplementation< Плагин AndroidFlutterLocalNotifications>() ?.createNotificationChannel(канал); дождитесь _notificationsPlugin.initialize( Настройки инициализации, onDidReceiveBackgroundNotificationResponse: onDidReceiveBackgroundNotificationResponse, onDidReceiveNotificationResponse: (Ответ NotificationResponse) асинхронный { печать('нормальный'); }, ); } static void createanddisplaynotification (сообщение RemoteMessage) async { пытаться { окончательный идентификатор = DateTime.now().milli SecondsSinceEpoch ~/ 1000; const NotificationDetails NotificationDetails = NotificationDetails( Android: AndroidNotificationDetails( "приложение push-уведомлений", "pushnotificationappchannel", важность: Важность.макс, приоритет: Приоритет.высокий, ), ); дождитесь _notificationsPlugin.show( идентификатор, сообщение.уведомление!.заголовок, сообщение.уведомление!.тело, уведомлениеДетали, полезная нагрузка: message.data['_id'], ); } при исключении исключения (e) { печать (е); } } } Я спрашивал у чатгпта, барда и т. д., но все говорят, что вызовите onDidReceiveBackgroundNotificationResponse, и это сработает. И большинство людей говорят, что нужно использовать onselectnotificaiotn вместо onDidReceiveBackgroundNotificationResponse, но у меня нет параметра onselectnotificaiotn.
Это моя основная функция void:
Future RemoteMessageHandler (сообщение RemoteMessage) асинхронный {} void main() асинхронный { ВиджетыFlutterBinding.ensureInitialized(); дождитесь Firebase.initializeApp(); FirebaseMessaging.onBackgroundMessage(remoteMessageHandler); LocalNotificationService.initialize(); Настройки уведомлений = ждут FirebaseMessaging.instance.requestPermission( предупреждение: правда, значок: правда, звук: правда, ); запуститьApp(MyApp()); } а это моя местная служба уведомлений:
класс LocalNotificationService { статический окончательный FlutterLocalNotificationsPlugin _notificationsPlugin = Плагин FlutterLocalNotifications(); @pragma('vm:точка входа') статическая пустота onDidReceiveBackgroundNotificationResponse( NotificationResponse notificationResponse) async { печать('фон'); } статический Future инициализировать() асинхронный { // Настройки инициализации для Android const InitializationSettings инициализацияSettings = Настройки инициализации( Android: AndroidInitializationSettings("@mipmap/ic_launcher"), ); // Создаем здесь канал уведомлений по умолчанию const AndroidNotificationChannel канал = AndroidNotificationChannel( 'default_notification_channel_id', «Канал уведомлений по умолчанию», важность: Важность.макс, ); _notificationsПлагин .resolvePlatformSpecificImplementation< Плагин AndroidFlutterLocalNotifications>() ?.createNotificationChannel(канал); дождитесь _notificationsPlugin.initialize( Настройки инициализации, onDidReceiveBackgroundNotificationResponse: onDidReceiveBackgroundNotificationResponse, onDidReceiveNotificationResponse: (Ответ NotificationResponse) асинхронный { печать('нормальный'); }, ); } static void createanddisplaynotification (сообщение RemoteMessage) async { пытаться { окончательный идентификатор = DateTime.now().milli SecondsSinceEpoch ~/ 1000; const NotificationDetails NotificationDetails = NotificationDetails( Android: AndroidNotificationDetails( "приложение push-уведомлений", "pushnotificationappchannel", важность: Важность.макс, приоритет: Приоритет.высокий, ), ); дождитесь _notificationsPlugin.show( идентификатор, сообщение.уведомление!.заголовок, сообщение.уведомление!.тело, уведомлениеДетали, полезная нагрузка: message.data['_id'], ); } при исключении исключения (e) { печать (е); } } } Я спрашивал у чатгпта, барда и т. д., но все говорят, что вызовите onDidReceiveBackgroundNotificationResponse, и это сработает. И большинство людей говорят, что нужно использовать onselectnotificaiotn вместо onDidReceiveBackgroundNotificationResponse, но у меня нет параметра onselectnotificaiotn.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение