英文:
How can I set the onDidReceiveBackgroundNotificationResponse property of FlutterLocalNotificationsPlugin.initialize?
问题
我正在尝试使用flutter_local_notification来实现本地推送通知,并且希望在Flutter应用程序在后台运行时调用FlutterLocalNotificationsPlugin.show时执行某些操作。我发现FlutterLocalNotificationsPlugin.initialize的onDidReceiveBackgroundNotificationResponse属性是应该编写此类操作的部分。然而,即使我编写以下类似的代码,它似乎也不会被执行。
如何触发onDidReceiveBackgroundNotificationResponse?如果有人知道的话,我将非常感激提供一些建议。
我假设您是指的是Android设备。
此外,即使在运行以下示例代码时,debugPrint也不会被执行。
flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onDidReceiveNotificationResponse: (notificationResponse) async {
debugPrint('[onDidReceiveNotificationResponse]');
if (notificationResponse.payload != null) {
debugPrint('notification payload: ${notificationResponse.payload}');
}
},
onDidReceiveBackgroundNotificationResponse: notificationTapBackground,
);
/* top-level */
@pragma('vm:entry-point')
void notificationTapBackground(NotificationResponse notificationResponse) {
debugPrint('[notificationTapBackground()]');
}
-版本-
Flutter: 3.10.6
flutter_local_notification: ^14.1.0
英文:
I'm trying to implement local push notifications using flutter_local_notification, and I want to perform certain actions when FlutterLocalNotificationsPlugin.show is called while the Flutter app is in the background. I found that the onDidReceiveBackgroundNotificationResponse property of FlutterLocalNotificationsPlugin.initialize is the part where such actions should be written. However, even if I write code like the following, it doesn't seem to be executed.
How can I trigger onDidReceiveBackgroundNotificationResponse? I would be incredibly grateful if someone who knows could provide some advice.
I assume you are referring to an Android device.
Also, even when running the following sample code, the debugPrint is not being executed.
flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onDidReceiveNotificationResponse: (notificationResponse) async {
debugPrint('[onDidReceiveNotificationResponse]');
if (notificationResponse.payload != null) {
debugPrint('notification payload: ${notificationResponse.payload}');
}
},
onDidReceiveBackgroundNotificationResponse: notificationTapBackground,
);
/* top-level */
@pragma('vm:entry-point')
void notificationTapBackground(NotificationResponse notificationResponse) {
debugPrint('[notificationTapBackground()]');
}
-version-
Flutter: 3.10.6
flutter_local_notification: ^14.1.0
答案1
得分: 1
- FirebaseMessaging.onMessage.listen 将在收到通知时运行。
- FirebaseMessaging.instance.getInitialMessage() 将在应用程序仍在后台运行时点击通知时运行。
- FirebaseMessaging.onMessageOpenedApp.listen 将在应用程序被终止时点击通知时运行。
对于本地通知
- 当应用程序在后台或终止时点击通知时,将运行 onDidReceiveBackgroundNotificationResponse。
- 当应用程序在前台时点击通知时,将运行 onDidReceiveNotificationResponse。
- 对于您的问题,您需要点击通知来运行 debugPrint。
英文:
for firebase notification
- FirebaseMessaging.onMessage.listen will run when you receive a notification.
- FirebaseMessaging.instance.getInitialMessage() will run when you tap the notification while the app is still in the background.
- FirebaseMessaging.onMessageOpenedApp.listen will run when you tap the notification when the app is being terminated.
for local notification
- onDidReceiveBackgroundNotificationResponse will run when you tap the notification while the app is in the background or terminated.
- onDidReceiveNotificationResponse will run when you tap the notification while the app is in the foreground.
- for your problem, you need tap to notification to run debugPrint
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论