所有这些都来自我目前正在开发的一款应用,让我们称之为 SampleApp
如何从我的手机托盘中获取这些通知的列表
是的,我知道我可以通过此代码获取通知
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().getPendingNotificationRequests { (requests) in
print("here are the iOS 10 notifs \(requests)")
}
} else {
let requests = (UIApplication.shared.scheduledLocalNotifications ?? [])
print("here are the NON iOS 10 notifs \(requests)")
}
但是这段代码的问题是我只能收到我离线创建的通知,而不是那些来自 Apple推送通知服务器(APNS)的通知
创建离线我的意思是,预定UILocalNotification
,因为推送通知不是UILocalNotification
s我不知道该怎么做
您可以提出的一些问题
这些通知来自我的应用吗?
我是否使用了didReceiveRemoteNotification
上的AppDelegate
?
我的远程通知是否来自APNS
我的注册远程通知的代码是什么样的?
if #available(iOS 10.0, *) {
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: authOptions, completionHandler: { (_, _) in })
} else {
let settings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
更新
Dávid Pásztor的评论部分解决了这个问题,因为现在我可以检索通知中心中显示的所有(推送和非推送)通知,但是仅适用于iOS 10
,因为以下代码仅适用于iOS 10
及以上设备,其他版本如何?
UNUserNotificationCenter.current().getDeliveredNotifications { (notifications) in
print(notifications)
}
答案 0 :(得分:2)
Dávid Pásztor的评论部分解决了该问题,因为现在我可以检索通知中心中显示的全部通知(推送和非推送),但是仅适用于PriorityQueue<Integer> pq = new PriorityQueue<Integer>(Collections.reverseOrder());
,因为下面的代码仅适用于iOS 10
及更高版本的设备,其他版本呢?
iOS 10