【发布时间】:2016-09-09 15:27:09
【问题描述】:
当应用程序在前台时,我在使用 iOS 9.3 SDK 时在 iOS 10 设备中安排本地通知时遇到问题。我们的应用程序的设计方式是,如果我们收到远程通知并且应用程序当前处于前台,我们会将其重新发布到本地,以便用户在将应用程序置于后台时仍然可以看到通知。这适用于 iOS 9 设备,但不适用于 iOS 10。
转贴代码:
dispatch_async(dispatch_get_main_queue(), {
let localNotification = UILocalNotification()
localNotification.userInfo = userInfo;
localNotification.fireDate = NSDate()
localNotification.timeZone = NSTimeZone.localTimeZone()
localNotification.soundName = UILocalNotificationDefaultSoundName
if let apnsPayload = userInfo["aps"] {
if let alert = apnsPayload["alert"] as? NSDictionary {
if let message = alert["body"] as? String {
localNotification.alertBody = message
}
}
if let category = apnsPayload["category"] {
localNotification.category = category as? String
}
}
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
})
我相信scheduleLocalNotification 的转贴工作正常,因为我可以看到我的didReceiveLocalNotification 代表被AppDelegate 调用。但是,如果我在将应用程序置于前台或后台时拉下通知下拉菜单,则不会出现通知。
还有其他人遇到过这个问题吗?我已经看到有关如何使用 iOS 10 UNUserNotificationCenter 的帖子丢失了,但我无法在 iOS 9.3 SDK 中访问此内容。
【问题讨论】:
标签: push-notification ios9 ios10