2015-06-08 16 views
0

如何判斷應用程序是否通過發送自定義方案url(不點擊應用程序圖標)進入前臺?如何檢查應用程序是否被帶到前臺處理自定義方案url?

如果應用程序當前沒有運行,則-application:didFinishLaunchingWithOptions:被調用,我們可以通過在launchOptions使用的關鍵UIApplicationLaunchOptionsURLKey值檢查,但在該應用程序已在運行的情況下,我們唯一的選擇就是UIApplicationWillEnterForegroundNotification,它沒有提供關於爲什麼應用程序被帶到前臺的信息。

是否有任何其他方式來區分這種差異(應用程序通過自定義網址將應用程序帶到前臺,並通過點擊應用程序圖標將應用程序帶到前臺)?

回答

0

您的應用將通過您的App Delegate接收來自OS的 -application:openURL:sourceApplication:annotation:調用。

如果您的應用程序未運行,應用程序代理首先收到-application:didFinishLaunchingWithOptions:,然後-application:openURL:sourceApplication:annotation:

如果您的應用程序已經運行,您只能收到後者。

+0

我的意思是如何判斷應用程序是通過自定義網址方案帶到前臺,而不是通過點擊應用程序圖標 – jAckOdE

+0

我應該讓問題更清楚,對不起 – jAckOdE

+0

我認爲真正的答案是「你不應該關心「。如果該應用是通過一個URL啓動的(或者通過URL將FG簡單地引入),您將會收到openURL調用。如果用戶只需輕點應用程序圖標,則不會接收該呼叫。 – brianpseudo

相關問題