如何在iOS10中关闭应用时响应本地通知?

时间:2016-11-17 10:29:59

标签: ios swift uilocalnotification ios10

如果应用程序完全关闭(不在后台),如何响应本地通知?

当应用程序在后台或前台运行时,一切正常。但是当应用关闭并且我尝试回复通知时,只会调用"application didFinishLaunchingWithOptions""userNotificationCenter didRecive response"没有回答。

我发现了这个问题(How to handle UNNotificationAction when app is closed?),但就我而言,它既不适用于真实设备也不适用于模拟器。

我还注意到,当应用关闭时,我在回复通知时,"UNUserNotificationCenter.current().getDeliveredNotifications()"函数会返回nil

1 个答案:

答案 0 :(得分:4)

对于application(_:didFinishLaunchingWithOptions:)中的 iOS 9及更低版,您需要检查launchOptions是否包含localNotification: UIApplicationLaunchOptionsKey。如果是这样,您会知道应用程序刚刚因本地通知而刚刚启动(即用户点击了通知)。

对于 iOS 10 + ,您必须UNUserNotificationCenterDelegateapplication(_:willFinishLaunchingWithOptions:)中注册application(_:didFinishLaunchingWithOptions:)

你的代表职能:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void)
如果您的应用刚刚启动或者只是坐在后台,则会调用

。 这个新API的优点是只有一个地方可以处理本地通知操作。

相关问题