我一直在(成功地)使用 Google Firebase 消息系统。我可以向我的 iPhone 发送消息并订阅/取消订阅组/主题,现在我想在推送通知到达手机时对其进行管理和处理。
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
// Print message ID.
if let messageID = userInfo[gcmMessageIDKey] {
print("1 Message ID: \(messageID)")
}
// Print full message.
print(userInfo)
// Change this to your preferred presentation option
completionHandler([])
}
这是来自谷歌的默认代码,当推送通知到达应用程序看到并打印时,它可以正常工作:
1 Message ID: 0:1007%4xxxxxxxxxa
[AnyHashable("gcm.message_id"): 0:1007%4xxxxxa, AnyHashable("aps"): {
alert = {
body = "Breaking News: ";
title = "The latest update";
};
category = "http://amp.sportsmole.co.uk/football/";
}]
但是,当我尝试使用各种 Swift 3 JSON 处理工具时,我最终会遇到错误。
例如,如果我尝试:
let data = userInfo[gcmMessageIDKey]
let json = try? JSONSerialization.jsonObject(with: data, options: [])
我收到一个错误,即参数类型的 jsonObject 不是我需要的。
有什么见解吗?