IOS检查显示本地通知

问题描述:

假设我计划3个本地通知,当用户打开应用程序,三个通知具有以下状态:IOS检查显示本地通知

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 iOS10之前的目标是iOS,那么您可以继续使用这些方法,但会得到弃用警告。

对于情况一个,即尚未下发的通知,该通知的详情,可通过对UIUserNotificationCenter实例调用getPendingNotificationRequests(iOS版10)或通过访问你的应用程序的UIApplication实例scheduledLocalNotifications财产(在iOS 10之前)

对于情况b,已发送但用户未与其交互的通知,没有信息可用。

对于情况c,用户点击启动应用程序的通知取决于应用程序的状态以及用户如何与通知进行交互。

  • 如果该应用没有运行在前台或悬浮,则应用程序被启动,并且通知有效载荷经由localNotification键在选项字典
  • 如果该应用被暂停,然后输送到application:didFinishLaunchingWithOptions:该通知被传递给didReceiveLocalNotification委托方法被调用。
  • 如果通知了自定义操作以及用户点击这些那么application:handleActionWithIdentifier:forLocalNotification:completionHandler:应用程序的委托方法被调用
+0

之一是'UNUserNotificationCenter' –