ios检查显示的本地通知

时间:2016-09-29 01:20:52

标签: ios uilocalnotification

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

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

我如何检测每一个?

1 个答案:

答案 0 :(得分:1)

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

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

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

对于案例 c ,用户点按以启动应用的通知,具体取决于应用的状态以及用户与通知的互动方式。

  • 如果应用未在前台运行或已暂停,则启动应用程序并通过选项词典中的application:didFinishLaunchingWithOptions:键将通知有效内容传递到localNotification
  • 如果应用暂停,则会将通知传递给didReceiveLocalNotification委托方法。
  • 如果通知具有自定义操作,并且用户点击其中一个,则会调用application:handleActionWithIdentifier:forLocalNotification:completionHandler:应用委托方法
相关问题