Как я могу использовать Siri Shortcuts для отображения определенной страницы в моем приложении? - PullRequest
0 голосов
/ 05 июня 2018

Я хочу углубленно изучить технологию ярлыков.Итак, вот несколько вопросов:

  • Можно ли использовать ярлыки Siri в любом приложении?Из-за SiriKit работает только в туризме, в чате и т. Д.
  • Теперь использую ярлыки.Могу ли я перейти к своему приложению, показывая конкретную страницу по Siri Si

1 Ответ

0 голосов
/ 07 июня 2018

Можно ли использовать ярлыки Siri в любом приложении?Поскольку SiriKit работает только в туризме, в чате и т. Д.

Да, любой.Они не привязаны к какой-либо конкретной области.Они пользовательские.

Теперь с помощью ярлыков.Могу ли я перейти к своему приложению, отображающему определенную страницу по Siri?

Да.


Приведенный ниже код показывает самый простой способ показать определенную страницу по Siri,называется «Пожертвование ярлыка» через NSUserActivity.Но вы можете достичь того же, определив пользовательский INIntent.

Шаг 1:

В Info.plist, в NSUserActivityTypes добавьте строку типа деятельности:com.app.viewPage

Шаг 2:

Создать действие:

let viewPageActivityType = "com.app.viewPage"

let viewPageActivity: NSUserActivity = {
    let userActivity = NSUserActivity(activityType: viewPageActivityType)
    userActivity.title = "View Page"
    userActivity.suggestedInvocationPhrase = "View Page"
    userActivity.isEligibleForSearch = true
    userActivity.isEligibleForPrediction = true
    return userActivity
}()

Затем добавьте его в контроллер представления:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        userActivity = viewPageActivity
    }
}

Шаг 3:

Обрабатывать его в методе UIApplicationDelegate (этот метод вызывается, если пользователь нажимает ярлык или активирует его из Siri с помощью голоса):

public func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

    if userActivity.activityType == viewPageActivityType {
        print("open the `ViewController` here")
        return true
    }
    return false
}

После того, как пользователь откроет ViewController один раз, он может получить подсказку на экране блокировки и предложениях поиска.Они также могут перейти к Settings -> Siri & Search -> My Shortcuts, чтобы определить пользовательскую фразу для выполнения действия с использованием голоса.

Чтобы отладить это, обязательно используйте устройство (не имитатор).Затем перейдите к Settings -> Developer -> Enable "Display Recent Shortcuts" and "Display Donations on Lock Screen".

. Здесь есть много полезных ресурсов:

...