iOS 10 SDKの新機能SiriKit、音声認識、iMessage拡張を自作アプリに生かすにはiOS 10アプリ開発入門(2/4 ページ)

» 2016年09月26日 05時00分 公開
[杉本裕樹マネーフォワード]

SiriKitの実装

 実際にSiriKitを使ったアプリを作ってみます。

「Single View Application」で新規プロジェクトを作成

 まずは新規プロジェクトを作成します。プロジェクトの種類は「Single View Application」を選択します。

Siriを使う準備

 プロジェクトを作成したら、「+」ボタンで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からの呼び出しが可能になります。

SiriKitのサンプルのソースコード

 今回作成したコードは、こちら「SiriKitSample.zip」からダウンロードできます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。