2013-10-03 18 views
15

Ho cercato per sempre, ma non ho trovato ... Sai se c'è un modo per determinare se la mia app iOS è stata lanciata da Siri o dall'utente toccando l'icona dell'app ?Determinare se l'applicazione iOS è stata avviata tramite Siri

Ho bisogno di sapere perché voglio automatizzare un'azione di avvio solo quando la mia app è lanciata da Siri.

Stavo pensando che forse applicazione: didFinishLaunchingWithOptions o qualche altra API permetterebbe la mia app per sapere come è stato lanciato, ma questo non sembra essere il caso (o ho appena perso).

Qualche idea se è disponibile qualche trucco che potrei utilizzare fino a quando Apple pubblica alcune API Siri ufficiali/pubbliche?

+0

non credo che Siri è pubblico all'interno forma API – user2277872

+0

abbiamo la stessa domanda se la sua applicazione possa sapere se è stato avviato da Siri o attraverso un click su l'icona dell'applicazione – clearwater

risposta

1

L'unica cosa che posso suggerire è controllare il dizionario launchOption inoltrato come parte di application:willFinishLaunchingWithOptions: e application:didFinishLaunchingWithOptions:.

C'è una chiave che pretende di elencare il nome dell'applicazione che ha richiesto le tue applicazioni lanciare e forse Siri sarebbe elencati:

Dal doc mela situato here:

UIApplicationLaunchOptionsSourceApplicationKey

La presenza di questa chiave identifica l'app che ha richiesto il lancio della tua app. Il valore di questa chiave è un oggetto NSString che rappresenta l'ID bundle dell'app che ha effettuato la richiesta. Questa chiave viene anche utilizzata per accedere allo stesso valore nel dizionario userInfo della notifica denominata UIApplicationDidFinishLaunchingNotification. Disponibile in iOS 3.0 e versioni successive. Dichiarato in UIApplication.h.

+0

Quando avvio l'app da SIRI né l'applicazione: didFinishLaunchingWithOptions né l'applicazione: viene chiamato il metodo willFinishLaunchingWithOptions. – Jayaprada

+0

Queste funzioni delegate vengono chiamate quando avvio la mia app con Siri. Tuttavia, il parametro delle opzioni di avvio è nullo. –

0

Quando lancio da Siri, viene chiamato application: didFinishLaunchingWithOptions. Tuttavia, il mio dizionario launchOptions è vuoto. Se lancio l'app utilizzando uno schema URL, il mio dizionario launchOptions ha le chiavi appropriate. In questo momento, non sembra come se fosse possibile sapere se l'applicazione è stata lanciata da Siri

0

Elenco delle opzioni di avvio fornito da Apple

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

Ecco il link alla documentazione di Apple Launch Options Keys.
Ecco il link al quorum per quanto riguarda ufficiale/pubblico Siri API Quora Link

Problemi correlati