Как заранее определить определенные фразы, которые должны быть использованы для запуска определенных действий 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 как первый шаг к этому. Это позволяет вам предоставлять системе задачи, на которые ваше приложение способно, а затем требует от пользователя записывать фразы, которые запускают эти задачи.

Другие вопросы по тегам