如何在 swift (FCM) 中接收数据通知
Posted
技术标签:
【中文标题】如何在 swift (FCM) 中接收数据通知【英文标题】:How to receive data notifications in swift (FCM) 【发布时间】:2019-11-07 00:04:32 【问题描述】:我需要快速接收数据通知,而不是使用通知消息。仅使用数据消息。
这是我的邮递员 Json
"to": "e32uafd....",
"data":
"urlImage": "https://upload.wikimedia.org/wikipedia/commons/8/80/image.jpg",
"title": "title",
"body": "****body****.",
"mutable_content": true
这是我的 swift 代码
@available(ios 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void)
switch UIApplication.shared.applicationState
case .active:
completionHandler( [.alert,.sound])
break
default:
completionHandler( [.alert,.sound])
break
【问题讨论】:
你解决了吗? 【参考方案1】:您可以使用func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
获取通知数据,但在此之前,您必须在注册通知时或在didFinishLaunchWithOptions(:)
方法中使您的ViewController 成为UNUserNotificationCenter
的代表。
第 1 步 让您的 AppDelegate 成为 UNNotificationCenter 的代表
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
// Assumming you have imported NotificationCenter
UNUserNotificationCenter.current().delegate = self
//......
return true
第 2 步 获取您的信息
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
print(userInfo) // Your notification info
// Note that you have to cast/parse it depending on which data you want to handle.
【讨论】:
在注册通知时,您必须将您的应用代理指定为UNUserNotificationCenter
的代理。为了清楚起见,我已经编辑了我的答案。
您确定您的应用收到推送通知吗?
不,我没有收到通知。但是如果我添加 "notification": "title": "title", "body": "****body****.", "mutable_content": true ,我会收到通知,但这就是问题所在,我不需要使用通知消息。仅使用数据消息以上是关于如何在 swift (FCM) 中接收数据通知的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 中单击通知时接收数据,当应用程序被杀死时,(react-native-fcm 模块在 IOS 中获取推送通知)
如何在接收 fcm 推送通知时处于退出状态时打开应用程序 - REACT NATIVE