【发布时间】:2021-10-30 14:25:02
【问题描述】:
我已将 FCM 与 flutter_local_notification 集成到我的颤振项目中。在 Android 中一切正常。但是,ios 也几乎可以工作,除非应用程序从历史记录中关闭。当应用程序从历史记录中清除时,消息不会触发。我在推送通知中只使用数据消息。请看下面:
{
"to": "/topics/global",
"priority": "high",
"content_available": true,
"data": {
"title": "Demo Title",
"message": "Demo Message",
"payload": "basic"
}
}
如您所见,json 中没有 notification 对象。此配置在 Android(前台和后台)和 ios 仅前台上运行良好。但是,如果我在这个 json 中添加 notification 对象,令人惊讶的是 it works even the app is closed。
但由于我需要手动处理通知,该选项不适合我的用例。所以我进一步研究并禁用了Method Swizzling
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
但这也无济于事。现在我有点迷路了,找不到达到预期结果的方法。我的AppDelegate.swift 如下所示
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate
}
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
注意:ios 应用在 TestFlight 中发布并在真实设备上进行测试
【问题讨论】:
-
你注册后台处理程序了吗?
-
是的,我有@Siddharthjha
-
如果有帮助,我来自世博会背景,但他们倾向于在本机设置或基本上归结为这一点的事情中提供很好的集成提示。尝试阅读此文档docs.expo.dev/versions/latest/sdk/notifications,看看是否有任何新的启发您。请查看“当应用不在前台时处理传入通知”部分
标签: ios firebase flutter push-notification firebase-cloud-messaging