我有一个委托类来处理来自Amazon Web Servercies的推送通知消息。每当我的应用程序收到来自AWS的通知时,都会调用didReceivePushNotification函数。该函数的一个参数包含我不确定的数据结构中的推送通知。它看起来与JSON非常相似。我想要做的是从数据结构中提取消息,以便我可以在警告框中显示它。
这是处理来自AWS的推送通知的委托类:
extension PushNotificationHandler: AWSPushManagerDelegate {
func pushManager(pushManager: AWSPushManager, didFailToRegisterWithError error: NSError) {
print("Failed to Register for Push Notification: \(error)")
}
func pushManager(pushManager: AWSPushManager, didReceivePushNotification userInfo: [NSObject : AnyObject]) {
/* userInfo.description contains push notification data */
/* I want to extract the message here so that I can display it in alertbox */
print("Received a Push Notification: \(userInfo.description)")
}
}
作为参数传递的推送通知结构具有此格式,我想从中提取警报值:
[
aps: {
alert = "xxxx have something to say";
}
]
我尝试将其解析为JSON并且有例如"不正确的数据格式"。所以我甚至不确定是不是因为数据不是JSON,或者我做错了。
无论如何,这是我尝试将其解析为JSON
if let jsonData = userInfo.description.dataUsingEncoding(NSUTF8StringEncoding)
{
if let jsonResult: NSDictionary = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
{ //data not correct format
if let aps : NSObject = jsonResult["aps"] as? NSObject
{
// Do stuff
print("aos--" + String(aps))
}
}
}