実際にSiriKitを使ったアプリを作ってみます。
まずは新規プロジェクトを作成します。プロジェクトの種類は「Single View Application」を選択します。
プロジェクトを作成したら、「+」ボタンでSiri用のTargetを追加します。
Targetの種類は「Intents Extension」を選びます。Target名は「SiriKitExtensionSample」にします。
最後にInfo.plistのBundle display nameに「サンプル」と入力します。こうすることで、SiriKitから「サンプル」というアプリ名で呼び出すことができます。
これでSiriを使う準備が完了しました。この状態でアプリを起動すればSiriからアプリを呼び出すことができます。
次はメッセージ送信時に呼ばれるコールバックメソッドを見ていきます。
Siriからアプリを呼び出すときは「SiriKitExtensionSample」フォルダの中のIntentHandlerクラスが使われます。
今回のメッセージ送信の場合ですと、このクラスのINSendMessageIntentHandlingプロトコルの各メソッドが呼ばれます。具体的には、メッセージ本文入力時は「confirm:completion:」、送信時は「handle:completion:」が使われます。
class IntentHandler: INExtension, INSendMessageIntentHandling { func confirm(sendMessage intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) { // メッセージ本文入力時に呼ばれる } func handle(sendMessage intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) { // 送信ボタン押下時に呼ばれる } }
以上でSiriKitの実装は完了です。
もしメッセージ送信以外の機能を呼び出したい場合はSiriKitExtensionSampleフォルダのInfo.plistにキーを追加します。
追加できるものはINRequestPaymentIntentなど、前ページの表で挙げたものが対象です。追加後にIntentHandlerクラスを対応するプロトコルに準拠させればSiriからの呼び出しが可能になります。
今回作成したコードは、こちら「SiriKitSample.zip」からダウンロードできます。
Copyright © ITmedia, Inc. All Rights Reserved.