假设我安排了3个本地通知,当用户打开应用时,有三个通知具有以下状态:
a) not displayed yet
b) displayed
c) displayed and user taps on this notification and come back to app.
我如何检测每一个?
答案 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:
应用委托方法