実際に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」からダウンロードできます。
「iOS 10」の新機能/APIに関する開発者向けTips 100本、クラスメソッドのエンジニアが公開
「iPhone 7」の新機能、エンジニアは“どこ”を評価した?
2Dゲームを例にSwift 2からSwift 3への変更点と移行のポイントを見るCopyright © ITmedia, Inc. All Rights Reserved.