【发布时间】:2017-10-24 09:43:10
【问题描述】:
我的应用有很多启动方式,比如通用链接、深度链接、远程通知、聚光灯。
当应用被这些功能激活时,
我可以通过userActivity.activityType 获得活动
在application:continueUserActivity:restorationHandler:
现在我想通过点击主屏幕上的图标来获取 iOS 应用启动事件,我该怎么做?
谢谢
【问题讨论】:
我的应用有很多启动方式,比如通用链接、深度链接、远程通知、聚光灯。
当应用被这些功能激活时,
我可以通过userActivity.activityType 获得活动
在application:continueUserActivity:restorationHandler:
现在我想通过点击主屏幕上的图标来获取 iOS 应用启动事件,我该怎么做?
谢谢
【问题讨论】:
这是默认启动场景。其他特殊情况(通知、链接)总是在application:didFinishLaunchingWithOptions:launchOptions 中为您提供额外的东西
来自docs:
启动选项
指示应用启动原因的字典 (如果有的话)。 本词典的内容在某些情况下可能为空 用户直接启动应用的位置。有关信息 此字典中可能的键以及如何处理它们,请参阅启动 选项键。
所以解决方法是检查launchOptions。用户直接启动应用时字典为空。
【讨论】:
在application:didFinishLaunchingWithOptions: 中,您会得到一本带有启动选项的字典。如果这个 launchOptions 字典为 nil,则表示应用是通过点击应用图标启动的。
另外,如果您的应用处于挂起状态,并且应用图标被点击,didFinishLaunchingWithOptions 将不会被调用,而是applicationWillEnterForeground(_:) 会被调用。
【讨论】: