我想赶上launchOptions
像didFinishLaunchingWithOptions
,但在applicationDidBecomeActive
(当我的应用程序需要关注)。 例如,我在Box中打开一个文档。然后,我选择“打开”并选择我的应用程序。然后我的应用程序成为焦点catch launchOptions in applicationDidBecomeActive
我怎样才能在我的UIApplicationDelegate
中恢复launchOptions
?
感谢
我想赶上launchOptions
像didFinishLaunchingWithOptions
,但在applicationDidBecomeActive
(当我的应用程序需要关注)。 例如,我在Box中打开一个文档。然后,我选择“打开”并选择我的应用程序。然后我的应用程序成为焦点catch launchOptions in applicationDidBecomeActive
我怎样才能在我的UIApplicationDelegate
中恢复launchOptions
?
感谢
如果您的应用程序未运行并且通过其他应用程序打开,则会调用applicationDidBecomeActive
,您可以访问launchOptions
。该应用程序然后将致电application:openURL:sourceApplication:annotation:
。
但是,如果你的应用程序在后台,只是变得活跃,只有application:openURL:sourceApplication:annotation:
被调用,所以你没有得到任何launchOptions
。您应该能够从application:openURL:sourceApplication:annotation:
的参数中获得所需的所有详细信息。
如果应用程序启动时为请求它来打开一个URL资源的其他应用程序的结果,UIApplication的首先发送应用程序:中:didFinishLaunchingWithOptions:消息,然后它会调用
从application:openURL:sourceApplication:annotation:文档的全部细节这种方法。此方法为处理应用程序的委托提供源应用程序的包ID以及来自该应用程序的任何注释信息。如果应用程序在接收到打开URL的请求时已经运行,则调用此方法,但application:didFinishLaunchingWithOptions:不是。
如果从外部应用程序,你将需要使用URL schemes打开您的应用。这会打开你的应用程序,无论它是在后台运行还是事实上已被终止(机会也会发生)。
使用此技术,方法- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
将在您的应用程序委托中调用。
在文档中查找该方法,以了解有关可传递给应用程序的参数的更多信息。通常你会使用一个你可以分析的网址并采取相应的行动。但是,如果您需要传递更多数据,则始终可以使用注释参数,这是一个plist,您可以将其转换为字典并从中提取所需的任何内容。
谢谢'应用:的OpenURL:sourceApplication:注释:'似乎提供了所有我需要的:) – ApheX
没有你的意思'应用中:didFinishLaunchingWithOptions:'第一句话...? – turingtested