何时填充UIApplicationLaunchOptionsURLKey?

时间:2015-07-28 06:40:51

标签: ios

launchOptions文件的AppDelegate.m中何时填充自定义网址?我已经加载了我的应用程序' Safari中的自定义网址和UIApplicationLaunchOptionsURLKey未填充。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    

    NSLog(@"app launch options");
    NSLog([launchOptions valueForKey:UIApplicationLaunchOptionsURLKey]);
}

2 个答案:

答案 0 :(得分:1)

当您尝试通过以下方式打开应用程序时,将填充UIApplicationLaunchOptionsURLKey:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"yourapp://"]];

...而yourappnot running

然后 (BOOL)application:(UIApplication *):didFinishLaunchingWithOptions:(NSDictionary *)将被执行,NSDictionary将填充两个键值 UIApplicationLaunchOptionsURLKeyUIApplicationLaunchOptionsSourceApplicationKey

答案 1 :(得分:1)

任何C派生程序的主要入口点是一个名为main的函数,而在ObjC中它称为int main。这会引发一系列最终调用applicationDidFinishLaunchingWithOptions:方法的事件,最终导致用户看到您希望他们看到的第一个“屏幕”。

2 在下一系列事件中applicationDidFinishLaunchingWithOptions:之后会发生一些事情。

  1. 如果有填充的网址密钥,则会使用该网址密钥并调用applicationDidBecomeActive:。

  2. 如果设置了网址密钥,则会调用application: openURL: sourceURL: annotation,这是您设置的位置。

  3. 这确实留下了applicationDidFinishLaunchingWithOptions:中初始调用的填充方式问题。我相信你可以在info.list文件中设置它。