为啥要在 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: 的选项不仅仅包括推送远程通知数据。部分列表,我脑海中浮现:

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

如果应用程序已在运行,则会调用这些活动的特定委托方法*。如果应用程序由于其中一种机制而启动,则相关数据将在options 中传递。这些键用于告诉您触发启动的事件类型以及options 中的数据类型。

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

【讨论】:

嗨,Avi,感谢您提供的信息。我可以理解为什么有 UIApplicationLaunchOptionsRemoteNotificationKey 从远程通知中获取数据。数据模式有 3 种类型,因此需要 key 来决定应用程序获取哪些类型的推送数据。

以上是关于为啥要在 didFinishLaunchingWithOptions 中使用 UIApplicationLaunchOptionsRemoteNotificationKey?的主要内容,如果未能解决你的问题,请参考以下文章

为啥要在hibernate中使用关联?

为啥要在 PySpark 中导入熊猫?

为啥要在 UpdateAsync 上设置 CreationTime 和 CreatorUserId?

为啥要在 didSelectRowAtIndexPath 中重新定义 pListPath?

为啥我们要在 free() 释放内存后清空指针? [复制]

为啥要在 CAKeyframeAnimation 上使用 `keyTimes`、`timingFunctions` 或 `timingFunction`?