UIApplicationLaunchOptionsURLKey 究竟何时被填充?
Posted
技术标签:
【中文标题】UIApplicationLaunchOptionsURLKey 究竟何时被填充?【英文标题】:When exactly does the UIApplicationLaunchOptionsURLKey get populated? 【发布时间】:2015-10-18 13:55:17 【问题描述】:自定义 URL 何时填充到 launchOptions
文件中的 AppDelegate.m
中?我已经在 Safari 中加载了我的应用程序的自定义 URL,并且没有填充 UIApplicationLaunchOptionsURLKey
。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
NSLog(@"app launch options");
NSLog([launchOptions valueForKey:UIApplicationLaunchOptionsURLKey]);
【问题讨论】:
【参考方案1】:当您尝试通过以下方式打开应用程序时,UIApplicationLaunchOptionsURLKey 会被填充:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"yourapp://"]];
...而yourapp
是not running。
然后
(BOOL)application:(UIApplication *):didFinishLaunchingWithOptions:(NSDictionary *)
将被执行,NSDictionary
将被填充两个键值
UIApplicationLaunchOptionsURLKey
和UIApplicationLaunchOptionsSourceApplicationKey
【讨论】:
如果我终止我的应用程序然后在 xcode 中再次启动它,那么查看我的 NSLog 的最佳方式是什么?另外,当它来自 safari 时,launchOptions 是否不会被填充? 如果您在真实设备上运行应用程序。 Window->Devices,在那里你可以看到你设备的控制台日志。 ***.com/questions/10165641/… 你也可以在你的 Mac 上使用 Console.app 并打开 ~/Library/Logs/CoreSimulator/任何 C 派生程序的主要入口点是一个名为 main
的函数,而在 ObjC 中它被称为 int main
。这引发了一系列事件,最终调用applicationDidFinishLaunchingWithOptions:
方法,最终导致用户看到您希望他们看到的第一个“屏幕”。
2 事情将发生在applicationDidFinishLaunchingWithOptions:
之后的下一系列事件中。
如果存在填充的 URL 键,它将使用该 URL 键并调用 applicationDidBecomeActive:。
如果没有设置了 URL 键,它将调用 application: openURL: sourceURL: annotation
,您可以在其中设置它。
这确实留下了如何为applicationDidFinishLaunchingWithOptions:
中的初始调用填充它的问题。我相信您可以在 info.list 文件中进行设置。
【讨论】:
以上是关于UIApplicationLaunchOptionsURLKey 究竟何时被填充?的主要内容,如果未能解决你的问题,请参考以下文章