通过在iOS10 +上打开本地通知来检测是否启动了应用程序

时间:2017-10-19 06:31:29

标签: ios notifications ios10 unusernotificationcenter usernotifications

我目前正在将应用迁移到新的UserNotifications框架。由于用户打开了本地通知,我一直在检测应用是否已启动。测试用例是:

  1. 安排本地通知
  2. 手动关闭应用
  3. 将Xcode设置为在启动应用时自动附加
  4. 等待通知显示并打开(默认操作)
  5. 问题在于,在这种情况下,userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:未被调用。在application:didFinishLaunchingWithOptions:中,有一个键UIApplicationLaunchOptionsLocalNotificationKey,其中包含UIConcreteLocalNotification类型的对象,该对象是UILocalNotification的子类。但是,作为旧通知系统的一部分,UILocalNotification已被弃用,我们不应该使用它。我在文档和网络中挖掘并没有找到我的问题的答案:

    如何通过本地通知找到应用是否已启动?

    如何获取该通知?

1 个答案:

答案 0 :(得分:5)

确保在应用完成发布之前将UNUserNotificationCenterDelegate的实施方式分配给UNUserNotificationCenter.current(),如pngquant中所述。

然后,您应该在应用启动时使用包含原始通知的响应对象来致电UNUserNotificationCenterDelegate userNotificationCenter(_:didReceive:withCompletionHandler:)。对我来说,它发生在application(_:didFinishLaunchingWithOptions:)被召唤之后的一段时间。