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

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

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

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

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

Ответы

Ответ 1

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

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

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

UIApplicationLaunchOptionsSourceApplicationKey

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

Ответ 2

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

Ответ 3

Список параметров запуска, предоставляемых 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 относительно официального/публичного Siri API Quora Link