當前位置:成語大全網 - 新華字典 - 怎樣判斷iOS App是通過哪種途徑啟動的

怎樣判斷iOS App是通過哪種途徑啟動的

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

說明:當應用程序啟動時執行,應用程序啟動入口。只在應用程序啟動時執行壹次。application參數用來獲取應用程序的狀態、變量等,值得註意的是字典參數:(NSDictionary *)launchOptions,該參數存儲程序啟動的原因。

1.若用戶直接啟動,lauchOptions內無數據;

2.若由其他應用程序通過openURL:啟動,則UIApplicationLaunchOptionsURLKey對應的對象為啟動URL(NSURL),UIApplicationLaunchOptionsSourceApplicationKey對應啟動的源應用程序的bundle ID (NSString);

3.若由本地通知啟動,則UIApplicationLaunchOptionsLocalNotificationKey對應的是為啟動應用程序的的本地通知對象(UILocalNotification);

4.若由遠程通知啟動,則UIApplicationLaunchOptionsRemoteNotificationKey對應的是啟動應用程序的的遠程通知信息userInfo(NSDictionary);

其他key還有UIApplicationLaunchOptionsAnnotationKey,UIApplicationLaunchOptionsLocationKey,

UIApplicationLaunchOptionsNewsstandDownloadsKey。 如果要在啟動時,做出壹些區分,那就需要在下面的代碼做處理。 比如:應用可以被某個其它應用調起(作為該應用的子應用),要實現單點登錄,那就需要在啟動代碼的地方做出合理的驗證,並跳過登錄。

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

{

NSURL *url = [options objectForKey:UIApplicationLaunchOptionsURLKey];

if(url)

{

}

NSString *bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey];

if(bundleId)

{

}

UILocalNotification * localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

if(localNotify)

{

}

NSDictionary * userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if(userInfo)

{

}

}