ios确定应用程序的启动方式

时间:2013-10-07 01:37:53

标签: iphone ios objective-c ipad launching-application

有没有办法确定应用程序启动或激活的“方式”(即主屏幕点击,四指滑动,siri等等)?

这个帖子类似(Determining whether iOS application was launched via Siri),但是答案不是太多。对于Mac OSX(How can a Mac app determine the method used to launch it?)也有这个,但我需要类似iOS的东西。

我也浏览了这个(https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3),虽然我找不到任何可以识别应用程序启动方式的内容。

提前致谢。

1 个答案:

答案 0 :(得分:2)

你可以发现使用AppDelegate方法从另一个应用程序中的URL启动了应用程序:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation { } 

此外,application:DidFinishLaunchingWithOptions:还有一些选项,您可以找到这些选项here,告诉您应用启动的原因。

这些键是:

NSString *const UIApplicationLaunchOptionsURLKey;
NSString *const UIApplicationLaunchOptionsSourceApplicationKey;
NSString *const UIApplicationLaunchOptionsRemoteNotificationKey;
NSString *const UIApplicationLaunchOptionsAnnotationKey;
NSString *const UIApplicationLaunchOptionsLocalNotificationKey;
NSString *const UIApplicationLaunchOptionsLocationKey;
NSString *const UIApplicationLaunchOptionsNewsstandDownloadsKey;
NSString *const UIApplicationLaunchOptionsBluetoothCentralsKey;
NSString *const UIApplicationLaunchOptionsBluetoothPeripheralsKey;

您可以在应用启动时使用if语句检查它们。