2013-10-03 97 views
15

我一直在尋找,但還沒有找到...你知道是否有辦法確定我的iOS應用程序是由Siri還是由用戶點擊應用程序圖標?確定iOS應用程序是否通過Siri啓動

我需要知道,因爲我只想在我的應用程序是從Siri啓動的 時自動啓動操作。

我在想,也許應用中:didFinishLaunchingWithOptions或 一些其他的API將允許我的應用程序知道它是如何推出,但並非 似乎是這種情況(或我只是錯過了)。

任何想法,如果有一些技巧,我可以使用,直到蘋果發佈 一些官方/公共Siri API?

+0

我不認爲Siri的是API形式 – user2277872

+0

內公開,我們有同樣的問題,如果它是否是由Siri的或通過點擊啓動應用會知道的鏈接Quora的應用程序圖標 – clearwater

回答

1

我建議的唯一方法是檢查作爲application:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions:的一部分傳入的launchOption字典。

有聲稱能列出請求您的應用程序推出,也許Siri的將被列出的應用程序的名稱,一個關鍵:

從位於here蘋果DOC:

UIApplicationLaunchOptionsSourceApplicationKey

此密鑰的存在標識請求啓動您的應用的應用。此鍵的值是一個NSString對象,它表示發出請求的應用程序的包ID。 此項也用於訪問名爲UIApplicationDidFinishLaunchingNotification的通知的userInfo字典中的相同值。 Available in iOS 3.0及更高。 在UIApplication.h中聲明。

+0

當我從SIRI啓動應用程序時,既不應用:didFinishLaunchingWithOptions也不應用:willFinishLaunchingWithOptions方法被調用。 – Jayaprada

+0

當我使用Siri啓動我的應用程序時,會調用這些委託函數。但是,啓動選項參數爲零。 –

0

當我從Siri啓動時,應用程序:didFinishLaunchingWithOptions被調用。但是,我的launchOptions字典是空的。如果我使用URL方案啓動應用程序,則我的launchOptions字典具有相應的鍵。在這個時候,它看起來並不像它的可能知道,如果應用程序是從Siri的

0

由蘋果

let UIApplicationLaunchOptionsURLKey: String let UIApplicationLaunchOptionsSourceApplicationKey: String let UIApplicationLaunchOptionsRemoteNotificationKey: String let UIApplicationLaunchOptionsLocalNotificationKey: String let UIApplicationLaunchOptionsAnnotationKey: String let UIApplicationLaunchOptionsLocationKey: String let UIApplicationLaunchOptionsNewsstandDownloadsKey: String let UIApplicationLaunchOptionsBluetoothCentralsKey: String let UIApplicationLaunchOptionsBluetoothPeripheralsKey: String let UIApplicationLaunchOptionsShortcutItemKey: String let UIApplicationLaunchOptionsUserActivityDictionaryKey: String let UIApplicationLaunchOptionsUserActivityTypeKey: String

這裏的鏈接到蘋果的文檔 Launch Options Keys提供的啓動選項列表中啓動。
下面是關於官員/公共Siri的API Quora Link

相關問題