我无法从Firebase推送通知中获取Data
字典。
我的代码:
class func parseIncommingMessages(notification:UNNotification) {
print("PushNotifications: \n \(notification.request.content.userInfo.debugDescription)")
let userInfo = notification.request.content.userInfo as! [String: Any]
let dicDataContainer = userInfo["gcm.notification.data"] as? [AnyHashable:Any]
// notification
if let dicDataMain = dicDataContainer?["Data"] as? [String:Any] , let notificationType = dicDataContainer?["notificationType"] as? String
{
print("\nData: \(dicDataMain)")
print("\n NotificationType: \(notificationType)")
}
}
PushNotifications:
[AnyHashable("gcm.message_id"): 0:1544560847941727%a27b0018a27b0018, AnyHashable("google.c.a.e"): 1, AnyHashable("gcm.notification.data"): {"Data":{"Name":"a","message":"test","operation":"change"},"notificationType":"status_change"}, AnyHashable("aps"): {
alert = {
body = Somthing;
title = Somthing;
};
}]
我无法解析,请帮助我。...
答案 0 :(得分:1)
您可以尝试
let str = userInfo["gcm.notification.data"] as! String
let res = try? JSONDecoder().decode(Root.self,data:str.data(using:.utf8)!)
print(res?.data)
struct Root : Decodable {
let data: DataClass
let notificationType: String
}
struct DataClass : Decodable {
let name, message, operation: String
}