gpt4 book ai didi

firebase - 如何使用 FCM 后台通知更新 UI?

转载 作者:行者123 更新时间:2023-12-04 13:53:40 24 4
gpt4 key购买 nike

当用户点击通知时,我想导航到某个页面。我正在使用云消息传递和 flutter_local_notifications。我已经设法通过前台通知做到了。这很简单。我将相同的代码粘贴到我的后台通知处理程序中,但没有用。此外,我一直在寻找通知的 onTap 回调,但找不到与此相关的任何内容。
这是我的后台通知处理程序。

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp();

var androidDetails = AndroidNotificationDetails(
"Channel ID",
"Shannonside",
"Shannonside Channel",
);

var iosDetails = IOSNotificationDetails();

var details = NotificationDetails(
android: androidDetails,
iOS: iosDetails,
);

if (message.notification != null) {
final title = message.notification.title;
final body = message.notification.body;
await NotificationService.localNotification.show(0, title, body, details);
}
if (message.data != null) {
var articleId = message.data['articleId'];
var category = message.data['category'];
if (articleId != null && category != null) {
print("ArticleID: $articleId Category $category");
//@TODO Add navigation service and move to the article detail
NavigatorService.instance.navigateTo("/articlePage", arguments: {
"articleId": articleId.toString().toLowerCase(),
"category": category.toString().toLowerCase(),
});
}
}
}
它不起作用,甚至我的功能都没有启动。他们还在文档中表示这是不可能的。

Since the handler runs in its own isolate outside your applications context, it is not possible to update application state or execute any UI impacting logic. You can however perform logic such as HTTP requests, IO operations (updating local storage), communicate with other plugins etc.


我知道有些应用程序会这样做,当您单击通知时,它们会打开一些页面。就像一个动态链接。我想在我的应用程序中实现这一点。

最佳答案

您可以使用功能

  FirebaseMessaging.instance
.getInitialMessage()
.then((RemoteMessage message) {
print("FirebaseMessaging.getInitialMessage");
if (message != null) {

Navigator.of(context).pushNamed('/call');
}
});
此功能仅在应用程序第一次打开时运行,它获取最后一条消息

关于firebase - 如何使用 FCM 后台通知更新 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66458072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com