didFinishLaunchingWithOptions

didFinishLaunchingWithOptions

我想知道为什么只在didFinishLaunchingWithOptions中使用UIApplicationLaunchOptionsRemoteNotificationKey吗?当我使用didReceiveRemoteNotification时不需要它。我可以理解如何获取和处理推送通知,但是,如何获取推送信息是didFinishLaunchingWithOptions和didReceiveRemoteNotification之间的区别。我想知道深层原因。

最佳答案

传递给application:didFinishLaunchingWithOptions:的选项不仅可以包含推送远程通知数据,还可以包含更多选项。一份清单,不在我的脑海:

  • 远程通知数据
  • 本地通知数据
  • 用于通过链接或其他应用程序打开应用程序的URL

  • 如果应用程序已经在运行*,则将调用这些 Activity 的特定委托方法。如果由于这些机制之一启动了应用程序,则相关数据将通过options传递。这些键用于告诉您哪种事件触发了启动,以及哪种数据在options中。

    *处理远程通知的后台处理是一种特殊情况。即使正在启动应用程序来处理它们,也会调用特定的委托方法。

    08-17 20:41