gpt4 book ai didi

Flutter 推送通知应用程序背景 : firebase_messaging

转载 作者:行者123 更新时间:2023-12-05 06:00:34 25 4
gpt4 key购买 nike

我想在我的应用程序处于后台时显示推送通知。
我正在使用 flutter_local_notifications包和 firebase_messaging包。

推送通知与 firebase_messaging 以及当我的应用程序作为后台时效果很好。
但是,下面的方法:

 // The following handler is called, when App is in the background.
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

如果 RemoteNotification 则不调用对象通过 RemoteMessage 传递:

Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
print('message from background handler');
print("Handling a background message: ${message.messageId}");

// If this is null, then this handler method is called
RemoteNotification remoteNotification = message.notification;

showNotificationFromData(message.data);
}

因此,我必须通过 message.data Map<String, dynamic> 对象.

我的问题是当这个 firebaseMessagingBackgroundHandler 时我不再收到推送通知处理程序方法被调用。

所以我一直在尝试使用 flutter_local_notification包来显示推送通知,但正如所说,它是“本地的”,因此它在前台工作正常但显然不在后台(相同的代码,相同的数据没有在后台显示为推送通知)。

问题:

我需要调用 firebaseMessagingBackgroundHandler处理程序来处理我的应用程序中的事件。所以当我的应用程序在后台运行时,我仍然可以收到推送通知吗?

谢谢

最佳答案

好的,我已经找到解决方案了。它是在服务器端代码中将 content_available 值设置为 True

要替换 firebase_messaging.Notification 项,我们需要覆盖 androidapns 配置。

这在 python 中看起来像这样:

apnsConfig = messaging.APNSConfig(
payload=messaging.APNSPayload(
aps=messaging.Aps(
content_available=True,
)
),

)

我现在正在接收推送通知并在 dart 代码中调用后台处理程序。

关于Flutter 推送通知应用程序背景 : firebase_messaging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67625115/

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