記事

ユーザーへのショートカットの提案

ユーザーがSiriに追加するとよいと思われるショートカットを提案します。

概要

ユーザーがAppでアクションを実行した後、Appはユーザーがそのアクションをすばやく行うためのショートカットをドネートする必要があります。ただし、Appには、ユーザーが実行したことがないアクションで、ユーザーが関心を持つ可能性のあるアクションもあります。例えばスープ注文Appなら、日替わりの特別なスープがあるかもしれません。日替わりスープを注文したことがないユーザーも、「日替わりスープ」のショートカットをSiriに追加してもよいと考える可能性があります。Appは、ショートカットサジェスチョンを作成することによってこのオプションを提供できます。

ショートカットを提案する

ユーザーが実行したことはないがSiriに追加してもよいと思われるアクションのショートカットを提案するには、アクションを定義するINIntent(英語)またはNSUserActivity(英語)オブジェクトのいずれかを使用して、INShortcut(英語)オブジェクトを作成します。次に、ショートカットを配列に追加します。Appで提案したいショートカットごとに、この手順を繰り返します。ショートカットサジェスチョンのリストを作成したら、setShortcutSuggestions(_:)(英語)を呼び出してショートカットを渡します。

リスト1

ユーザーがSiriに追加できるショートカットを提案する

import Intents

// Add a user activity to the list of suggestions.
var suggestions = [INShortcut(userActivity: orderFavoriteBeverageUserActivity)]

// Add an intent to the list of suggestions. To create
// a shortcut from an intent, the intent must be valid.
if let shortcut = INShortcut(intent: orderSoupOfTheDayIntent) {
    suggestions.append(shortcut)
}

// Suggest the shortcuts.
INVoiceShortcutCenter.shared.setShortcutSuggestions(suggestions)

サジェスチョンをアップデートする

ショートカットサジェスチョンのリストは、ユーザーに適したアクションでなければなりません。次のような理由で、時間が経過するとこのリストは変化する可能性があります。

  • Appの機能の追加や削除。

  • ユーザーのApp使用方法の変化。

ショートカットのサジェスチョンリストをアップデートするには、setShortcutSuggestions(_:)(英語)を呼び出して新しいサジェスチョンリストを渡し、既存のリストを置き換えます。Appからのすべてのサジェスチョンを削除するには、同じメソッドを呼び出して空の配列を渡します。

ショートカットサジェスチョンのリストを変更しても、ユーザーがSiriに追加するショートカットには影響しません。例えば、Appから提案された「いつもの飲み物を注文」というショートカットをユーザーがSiriに追加しており、しばらく後にAppがリストからこのサジェスチョンを削除したとしても、ユーザーは引き続きそのショートカットを使用できます。