我目前正在将应用迁移到新的UserNotifications框架。由于用户打开了本地通知,我一直在检测应用是否已启动。测试用例是:
问题在于,在这种情况下,userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:
未被调用。在application:didFinishLaunchingWithOptions:
中,有一个键UIApplicationLaunchOptionsLocalNotificationKey
,其中包含UIConcreteLocalNotification
类型的对象,该对象是UILocalNotification
的子类。但是,作为旧通知系统的一部分,UILocalNotification
已被弃用,我们不应该使用它。我在文档和网络中挖掘并没有找到我的问题的答案:
如何通过本地通知找到应用是否已启动?
如何获取该通知?
答案 0 :(得分:5)
确保在应用完成发布之前将UNUserNotificationCenterDelegate
的实施方式分配给UNUserNotificationCenter.current()
,如pngquant中所述。
然后,您应该在应用启动时使用包含原始通知的响应对象来致电UNUserNotificationCenterDelegate
userNotificationCenter(_:didReceive:withCompletionHandler:)
。对我来说,它发生在application(_:didFinishLaunchingWithOptions:)
被召唤之后的一段时间。