【发布时间】:2021-06-25 04:29:34
【问题描述】:
我已经让 firebase_messaging 9.1.0 在应用程序处于前台、后台和关闭时接收并显示我的 Android 和 iOS 应用程序通知。但是在 iOS 上,后台处理程序 future 似乎没有执行。我正在运行 firebase_messaging_example 应用程序,它在后台运行时不会打印“处理后台消息 ${message.messageId}”。
在 xcode 中检查后台获取和远程通知。
我试过了:
使用和不使用 clickAction 发送通知:“FLUTER_NOTIFICATION_CLICK”
有和没有
<key>FirebaseAppDelegateProxyEnabled</key> <false/>
在 info.plist 中
在 xcode 中检查有无后台处理。
我希望后台处理程序执行一些在应用启动器图标上设置徽章的代码。有谁知道如何让处理程序与 iOS 一起使用,或者在应用关闭时以其他方式在启动器图标上设置徽章?
【问题讨论】:
-
数据通知和非数据通知是否都会发生这种情况?另外,您确定您没有关闭通知吗?在 iOS 上,您必须再次手动启用它们/打开应用程序才能再次显示它们。在 iOS 上,您可以选择通过配置声音/横幅/警报来设置 Flutter 中的通知设置。
-
是的,无论有无数据都会发生。通知正在通过,它们只是没有激活后台处理程序。在 android 上,当应用程序在后台时,我可以在调试控制台中看到打印它,我可以执行显示徽章的代码,但在 iOS 中什么都没有。声音/徽章/警报选项仅适用于应用程序在前台运行时。数据中的内容是否重要?
-
请发布您的后台消息处理程序。
-
我正在使用来自github.com/FirebaseExtended/flutterfire/blob/master/packages/…的firebase_messaging包中未修改的示例
处理程序是:Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async { await Firebase.initializeApp(); print('Handling a background message ${message.messageId}'); } -
请检查我的回答,我相信它会帮助你处理你的情况。
标签: flutter firebase-cloud-messaging