我目前正在将一个应用程序迁移到新的 UserNotifications 框架。由于用户打开本地通知,我一直在检测应用程序是否已启动。测试用例是:
- 安排本地通知
- 手动关闭应用
- 将 Xcode 设置为在应用启动时自动附加
- 等待通知显示并打开它(默认操作)
问题是在这种情况下 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:
没有被调用。在 application:didFinishLaunchingWithOptions:
中有一个键 UIApplicationLaunchOptionsLocalNotificationKey
,它包含一个 UIConcreteLocalNotification
类型的对象,它是 UILocalNotification
的子类>。但是,作为旧通知系统的一部分,UILocalNotification
已被弃用,我们不应该使用它。我查阅了文档和网络,但没有找到我的问题的答案:
我如何知道某个应用是否因本地通知而启动?
我如何获得该通知?
最佳答案
确保在您的应用程序完成启动之前将您的 UNUserNotificationCenterDelegate
实现分配给 UNUserNotificationCenter.current()
,如 documentation 中所述.
然后你应该在应用程序启动时使用响应对象调用你的 UNUserNotificationCenterDelegate
的 userNotificationCenter(_:didReceive:withCompletionHandler:)
,其中包含原始通知。对我来说,它发生在我的 application(_:didFinishLaunchingWithOptions:)
被调用之后的一段时间。
关于ios - 通过在 iOS10+ 上打开本地通知来检测应用是否已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823936/