为啥要在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey?
Posted
技术标签:
【中文标题】为啥要在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey?【英文标题】:Why should I use UIApplicationLaunchOptionsRemoteNotificationKey in didFinishLaunchingWithOptions?为什么要在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey? 【发布时间】:2015-11-08 06:56:51 【问题描述】:我想知道为什么我应该只在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey ?当我使用 didReceiveRemoteNotification 时不需要它。我可以理解如何获取推送通知和处理它,但是如何获取推送信息是 didFinishLaunchingWithOptions 和 didReceiveRemoteNotification 之间的区别。我想知道深层原因。
【问题讨论】:
【参考方案1】:传递给application:didFinishLaunchingWithOptions:
的选项不仅仅包括推送远程通知数据。部分列表,我脑海中浮现:
如果应用程序已在运行,则会调用这些活动的特定委托方法*。如果应用程序由于其中一种机制而启动,则相关数据将在options
中传递。这些键用于告诉您触发启动的事件类型以及options
中的数据类型。
*处理远程通知的后台处理是一种特殊情况。即使正在启动应用程序来处理它们,也会调用特定的委托方法。
【讨论】:
嗨,Avi,感谢您提供的信息。我可以理解为什么有 UIApplicationLaunchOptionsRemoteNotificationKey 从远程通知中获取数据。数据模式有 3 种类型,因此需要 key 来决定应用程序获取哪些类型的推送数据。以上是关于为啥要在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey?的主要内容,如果未能解决你的问题,请参考以下文章
为啥要在 UpdateAsync 上设置 CreationTime 和 CreatorUserId?
为啥要在 didSelectRowAtIndexPath 中重新定义 pListPath?
为啥要在 CAKeyframeAnimation 上使用 `keyTimes`、`timingFunctions` 或 `timingFunction`?