从推送通知数据结构中提取消息正文

时间:2016-12-13 22:42:21

标签: swift amazon-web-services parse-platform push-notification amazon-sns

我有一个委托类来处理来自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))
                }
            }
        }

0 个答案:

没有答案