Определение того, было ли приложение 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