Определение того, было ли приложение для iOS запущено через Siri

Я искал вечно, но не нашел ... Знаете ли вы, есть ли способ определить, было ли мое приложение для iOS запущено Siri или пользователем, нажав на значок приложения?

Мне нужно знать, потому что я хочу автоматизировать запуск только тогда, когда мое приложение запускается из Siri.

Я думал, что, возможно, application: didFinishLaunchingWithOptions или какой-либо другой API позволят моему приложению узнать, как оно было запущено, но, похоже, это не так (или я просто пропустил это).

Есть идеи, есть ли какой-нибудь трюк, который я мог бы использовать, пока Apple не опубликует официальный / общедоступный API Siri?


person Yan Avery    schedule 03.10.2013    source источник
comment
я не думаю, что siri общедоступен в форме API   -  person user2277872    schedule 03.10.2013
comment
у нас есть тот же вопрос, узнает ли приложение, было ли оно запущено Сири или щелчком по значку приложения   -  person clearwater    schedule 13.11.2013


Ответы (3)


Единственное, что я могу предложить, - это проверить словарь launchOption, переданный как часть application:willFinishLaunchingWithOptions: и application:didFinishLaunchingWithOptions:.

Есть один ключ, который утверждает, что перечисляет имя приложения, которое запросило запуск ваших приложений, и, возможно, будет указан Siri:

Из документа Apple, расположенного здесь:

UIApplicationLaunchOptionsSourceApplicationKey

Наличие этого ключа определяет приложение, которое запросило запуск вашего приложения. Значением этого ключа является объект NSString, представляющий идентификатор пакета приложения, сделавшего запрос. Этот ключ также используется для доступа к тому же значению в словаре userInfo уведомления с именем UIApplicationDidFinishLaunchingNotification. Доступно в iOS 3.0 и новее. Заявлено в UIApplication.h.

person Dean    schedule 14.11.2013
comment
Когда я запускаю приложение из SIRI, ни метод application: didFinishLaunchingWithOptions, ни метод application: willFinishLaunchingWithOptions не вызывается. - person Jayaprada; 29.10.2014
comment
Эти функции-делегаты вызываются, когда я запускаю приложение с помощью Siri. Однако параметр параметров запуска равен нулю. - person Daniel Saidi; 07.07.2017

Когда я запускаю из Siri, вызывается application: didFinishLaunchingWithOptions. Однако мой словарь launchOptions пуст. Если я запускаю приложение с использованием схемы URL, в моем словаре launchOptions будут соответствующие ключи. В настоящее время не похоже, что возможно узнать, было ли приложение запущено с Siri.

person r3c0d3    schedule 08.02.2016

Список вариантов запуска, предоставляемых 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

Вот ссылка на документацию Apple Клавиши параметров запуска.
Вот ссылка на Quora относительно официального / общедоступного API Siri Ссылка на Quora

person Priyansh    schedule 11.02.2016