2

有什么方法可以确定应用程序“如何”启动或激活(即主屏幕点击、四指滑动、siri 等)?

有一个类似的线程(确定iOS应用程序是否通过Siri启动),但答案并不多。Mac OSX 也有这个(Mac 应用程序如何确定用于启动它的方法?)但我需要类似的东西用于 iOS。

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

提前致谢。

4

1 回答 1

2

您可以使用 AppDelegate 方法确定应用程序是从另一个应用程序中的 URL 启动的:

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

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

这些键是:

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 语句检查它们。

于 2013-10-07T02:02:36.297 回答