ドキュメント

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

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

概要

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

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

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

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

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

  • アプリの機能の追加や削除。

  • ユーザーのアプリ使用方法の変化。

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

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