有没有办法确定应用程序启动或激活的“方式”(即主屏幕点击,四指滑动,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),虽然我找不到任何可以识别应用程序启动方式的内容。
提前致谢。
答案 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语句检查它们。