Как заранее определить определенные фразы, которые должны быть использованы для запуска определенных действий Siri
Я могу создать ярлык, используя NSUserActivity или Intent, и затем позволить пользователю записать определенную фразу, которая вызовет определенный ярлык, предоставив ему соответствующий контроллер представления или отправив привет настройкам->Siri-> Ярлыки, Для этого я бы использовал этот код, например:
let activityType = PageID.page1.rawValue
lazy var activity: NSUserActivity = {
let userActivity = NSUserActivity(activityType: activityType)
userActivity.title = "View Page"
userActivity.suggestedInvocationPhrase = "Page one"
userActivity.isEligibleForSearch = true
userActivity.isEligibleForPrediction = true
userActivity.persistentIdentifier = NSUserActivityPersistentIdentifier(activityType)
return userActivity
}()
Это просто добавляет ярлык к предложениям Siri и делает его доступным в настройках, но все же пользователь должен записать фразу, чтобы вызвать ярлык для определенной фразы.
Как заранее определить фразы, такие как "Выполнить какое-либо задание", для конкретного действия и дать возможность пользователю использовать его, но без необходимости ручной записи?
Точнее, я хочу открыть определенную страницу в моем приложении, основываясь на том, что говорит пользователь. Например, Открыть первую страницу, Открыть две, Открыть меню и т. Д.
1 ответ
То, что вы хотите сделать, в настоящее время невозможно с помощью фреймворков Apple в iOS 12. Apple позволяет вашему приложению использовать Siri без пользовательских фраз записи для очень специфических доменов (например, для обмена сообщениями или платежей), но не для произвольных задач. Я вижу Siri Shortcuts как первый шаг к этому. Это позволяет вам предоставлять системе задачи, на которые ваше приложение способно, а затем требует от пользователя записывать фразы, которые запускают эти задачи.