ios检查是否显示本地通知

ios检查是否显示本地通知,ios,uilocalnotification,Ios,Uilocalnotification,假设我安排了3个本地通知,当用户打开应用程序时,三个通知具有以下状态: a) not displayed yet b) displayed c) displayed and user taps on this notification and come back to app. 如何检测每个通知?iOS 10引入了UIUserNotificationCenter,并且不推荐通过UIApplication安排和传递本地通知,因此根据您使用的方法,存在一些差异。不推荐使用的方法仍然适用于iOS 1

假设我安排了3个本地通知,当用户打开应用程序时,三个通知具有以下状态:

a) not displayed yet
b) displayed
c) displayed and user taps on this notification and come back to app.

如何检测每个通知?

iOS 10引入了
UIUserNotificationCenter
,并且不推荐通过
UIApplication
安排和传递本地通知,因此根据您使用的方法,存在一些差异。不推荐使用的方法仍然适用于iOS 10,因此如果您的目标是iOS早于iOS 10,那么您可以继续使用这些方法,但您将收到不推荐使用的警告

对于案例a,一个尚未发送的通知,可通过调用
UIUserNotificationCenter
(iOS 10)实例上的
getPendingNotificationRequests
获取此通知的详细信息或者通过访问应用程序的
ui应用程序
实例上的
scheduledLocalNotifications
属性(iOS 10之前)

对于案例b,已发送但用户未与之交互的通知,没有可用信息

对于casec,用户点击以启动应用程序的通知,它取决于应用程序的状态以及用户与通知的交互方式

  • 如果应用程序未在前台运行或已挂起,则会启动应用程序,并通过选项字典中的
    localNotification
    键将通知有效负载发送到
    应用程序:didFinishLaunchingWithOptions:
  • 如果应用程序被挂起,则通知将传递到
    didReceiveLocalNotification
    并调用委托方法
  • 如果通知具有自定义操作,并且用户点击其中一个,则调用
    应用程序:handleActionWithIdentifier:forLocalNotification:completionHandler:
    应用程序委托方法

它是
未使用的通知中心