Swift read userInfo of remote notification

ios, json, push-notification, swift, userinfo

Solution

The root level item of the `userInfo` dictionary is `"aps"`, not `"alert"`.

Try the following:

if let aps = userInfo["aps"] as? NSDictionary {
    if let alert = aps["alert"] as? NSDictionary {
        if let message = alert["message"] as? NSString {
           //Do stuff
        }
    } else if let alert = aps["alert"] as? NSString {
        //Do stuff
    }
}

See Push Notification Documentation

Problem

I implemented a function to open an AlertView when I receive a remote notification like this: ``` func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]){ var notifiAlert = UIAlertView() var NotificationMessage : AnyObject? = userInfo["alert"] notifiAlert.title = "TITLE" notifiAlert.message = NotificationMessage as? String notifiAlert.addButtonWithTitle("OK") notifiAlert.show() } ``` But NotificationMessage is always nil. My json payload looks like this: ``` {"aps":{"alert":"Testmessage","badge":"1"}} ``` I am using Xcode 6, Swift and I am developing for iOS8. I searched hours now, but didn't find any useful information. The Notifications works perfectly.. and if I click it, the alertview opens. My problem is, that I am not able to get the data out of userInfo.

Original source