userInfo 通知数据不可检索?
Posted
技术标签:
【中文标题】userInfo 通知数据不可检索?【英文标题】:userInfo notification data not retrievable? 【发布时间】:2016-12-07 18:32:04 【问题描述】:所以我一直试图弄清楚为什么 userInfo 没有显示我想要的数据。 当我打印 userInfo 我得到这个:
[AnyHashable("aps"):
alert = "test account \ni'm running late";
badge = 11;
sound = "bingbong.aiff";
]
但是,当我尝试执行 userInfo["alert"]
时,它返回 nil。我已经尝试了一切,包括userInfo["aps"]["alert"]
,但仍然没有。我已经被困了好几个小时了。我希望有人能帮帮忙。
这是我的全部功能:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any])
//PFPush.handle(userInfo)
if (userInfo["badge"] != nil)
let badgeNumber: Int = userInfo["badge"] as! Int
application.applicationIconBadgeNumber = badgeNumber
if application.applicationState == .inactive
PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(inBackground: userInfo, block: nil)
else if application.applicationState == .active
let notificationManager = LNRNotificationManager()
notificationManager.showNotification(title: "Test", body: "", onTap: () -> Void in
notificationManager.dismissActiveNotification(completion: () -> Void in
print("Notification dismissed")
)
)
print(userInfo)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "didRecieveNotificationWhileInApp"), object: nil)
【问题讨论】:
【参考方案1】:正如您在 userInfo
转储中看到的那样,badge
在字典中的键 aps
if let aps = userInfo["aps"] as? [String:Any]
let badgeNumber = aps["badge"] as! Int
application.applicationIconBadgeNumber = badgeNumber
【讨论】:
哇,非常感谢。你不知道我努力让它工作多久了哈哈。以上是关于userInfo 通知数据不可检索?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“错误域 = NSCocoaErrorDomain 代码 = 3840”无价值。“UserInfo = NSDebugDescription = 无价值。”
swift 4 发布通知 userInfo 混合类型(字符串和 NSMutableArray)