一尘不染

快速读取远程通知的userInfo

swift

当我收到这样的远程通知时,我实现了一个打开AlertView的功能:

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()
}

但是NotificationMessage始终为零。

我的json负载看起来像这样:

{"aps":{"alert":"Testmessage","badge":"1"}}

我正在使用Xcode
6,Swift,并且正在为iOS8开发。我现在搜索了几个小时,但没有找到任何有用的信息。通知工作正常..如果我单击它,则将打开警报视图。我的问题是,我无法从userInfo中获取数据。


阅读 203

收藏
2020-07-07

共1个答案

一尘不染

userInfo字典的根目录项"aps"不是"alert"

尝试以下方法:

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
    }
}

请参阅推送通知文档

2020-07-07