概要
アプリには、Intentのカスタムインターフェイスを管理するIntents UI App Extensionを1つ以上含めることができます。Extensionごとにビューコントローラクラスが1つあり、これが、サポートされるIntentのインターフェイスを提供します。各Intents UI App Extensionを設定するには、Xcodeプロジェクトにカスタムターゲットを追加し、サポートするIntentを使ってInfo
ファイルを設定する必要があります。
XcodeプロジェクトにIntents UI App Extensionを追加する
Intents App Extensionを作成する際、Xcodeに対して、同時にIntents UI Extensionも作成するように指示できます。ここで指示しなかった場合でも、後でプロジェクトにIntents UI Extensionを追加できます。
-
Xcodeを起動し、iOSアプリのプロジェクトを開きます。
-
「File (ファイル)」>「New (新規)」>「Target (ターゲット)」の順に選択します。
-
「iOSApplication Extension」グループから、Intents UI Extensionを選択してください。
-
「Next(次に)」をクリックします。
-
Extensionの名前を指定し、言語その他のオプションを設定します。
-
「Finish(完了する)」をクリックします。
Xcodeテンプレートには、Storyboardと1つのビューコントローラが含まれています。Siriやマップは常に、ExtensionのStoryboardファイルに記述されているイニシャルビューコントローラを読み込んで表示するので、ビューコントローラーでコンテンツを設定してください。イニシャルビューコントローラとその他のコンテンツとの間のすべてのやり取りを管理するのは、アプリ側の責任です。通常、イニシャルビューコントローラとのシーンにカスタムビューを追加しますが、Intentごとに異なるコンテンツを表示したい場合、子ビューコントローラを埋め込むこともできます。
ExtensionがサポートするIntentを指定する
プロジェクトにIntents UI App Extensionターゲットを追加したら、Xcodeで用意されたデフォルトのInfo
ファイルを設定し、どのIntentがカスタムインターフェイスを使用するか指定します。SiriKitはExtensionのInfo
ファイルの情報を使用して、カスタムビューコントローラを読み込むタイミングを判断します。
-
Xcodeで、Intents App Extensionの
Info
ファイルを選択します。.plist -
NSExtension
キーおよびNSExtension
キーを展開します。Attributes -
Intents
キーに、Extensionが扱う各IntentのString項目を追加します。各項目の値として、Intentのクラス名を設定してください。Supported
Info
ファイルのNSExtension
キーには、ビューコントローラを含むStoryboard名が含まれます。Storyboardファイルの名前を変更する際は、忘れずにこのキーの値も更新してください。プログラムでビューコントローラを作成したい場合は、このキーをNSExtension
キーに置き換え、値をビューコントローラクラスの名前に設定します。
重要
NSExtension
キーとNSExtension
キーは、相互に排他的です。ExtensionのInfo
ファイルに両方のキーがあると、そのExtensionはシステムで読み込まれません。