2013-10-03 14 views
15

Szukałem na zawsze, ale nie znalazłem ... Czy wiesz, czy istnieje sposób na określić, czy moja aplikacja na iOS została uruchomiona przez Siri, czy przez użytkownika, dotykając ikony aplikacji ?Sprawdzanie, czy aplikacja iOS została uruchomiona przez Siri

Muszę wiedzieć, ponieważ chcę zautomatyzować akcję startową tylko wtedy, gdy moja aplikacja jest uruchomiona z Siri.

Myślałam, że może aplikację: didFinishLaunchingWithOptions lub jakiś inny API pozwoli moja aplikacja wiedzieć, w jaki sposób został uruchomiony, ale nie wydaje się być w przypadku (lub po prostu nie zauważył).

Masz pomysł, czy jest jakiś sztuczka, którą mógłbym wykorzystać, zanim Apple opublikuje jakiegoś oficjalnego/publicznego Siri API?

+0

Nie sądzę Siri jest publiczna w formie API – user2277872

+0

mamy to samo pytanie, czy aplikacja będzie wiedział, jeśli został uruchomiony przez Siri lub poprzez kliknięcie na ikona aplikacji – clearwater

Odpowiedz

1

Jedyne, co mogę zasugerować, to sprawdzenie słownika launchOption przekazanego jako część application:willFinishLaunchingWithOptions: i application:didFinishLaunchingWithOptions:.

Jest jeden klucz, który twierdzi, podać nazwę aplikacji, która zleciła aplikacje uruchomić i może Siri będzie wymienione:

Od doc jabłkowego znajduje here:

UIApplicationLaunchOptionsSourceApplicationKey

Obecność tego klucza wskazuje aplikację, która zażądała uruchomienia aplikacji. Wartością tego klucza jest obiekt NSString, który reprezentuje identyfikator pakietu aplikacji, która wysłała żądanie. Ten klucz jest również używany do uzyskiwania dostępu do tej samej wartości w słowniku userInfo powiadomienia o nazwie UIApplicationDidFinishLaunchingNotification. Dostępne w iOS 3.0 i nowszych wersjach. Zadeklarowane w UIApplication.h.

+0

Po uruchomieniu aplikacji z SIRI nie jest wywoływana żadna aplikacja: didFinishLaunchingWithOptions ani application: willFinishLaunchingWithOptions. – Jayaprada

+0

Te funkcje delegatów są wywoływane podczas uruchamiania mojej aplikacji z Siri. Jednak parametr opcji uruchamiania jest zerowy. –

0

Po uruchomieniu z Siri zostanie wywołana aplikacja: didFinishLaunchingWithOptions. Jednak mój słownik launchOptions jest pusty. Jeśli uruchomię aplikację przy użyciu schematu URL, mój słownik launchOptions ma odpowiednie klucze. W tej chwili nie wygląda jak to możliwe, aby wiedzieć, czy aplikacja została uruchomiona z Siri

0

lista opcji uruchamiania dostarczonych przez 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

Oto link do dokumentacji Apple Launch Options Keys.
Oto link do Quora dotyczące oficjalnej/publicznej Siri API Quora Link