Xcode 9.3 Beta 2 の SDK での変更
ざっと見た感じ BusinessChat の API が追加されている模様。
Beta 1 の頃から Swift 4.0 > 4.1 の変更があるけど割愛。
(機能追加や、flatMap { $0 + [1] } の flatMap が compactMap に変更とか)
BusinessChat で追加された Class
- BCChatButton
- BCChatAction
アプリから BusinessChat を開くための API らしい。
ちなみに BusinessChat と連携するアプリは iMessage アプリの Extension で作成する。使用方法は以下を参照。
BCChatButton
BusinessChat 用のボタン。
中身は light と dark のアピアランスが用意されているボタンの形状をした UIControl。
アクション用に BCChatAction が用意されているのでこのボタンを必ず使用する必要はなさそう。
BCChatAction
パラメーターとして intent、group、body がパラメーターとして用意されており、
openTranscript のメソッドでチャットの固有識別子と共にパラメーターに渡して、
iMessage アプリの BussinesChat を開く。
パラメーター名 | 説明 |
---|---|
intent | サポートエージェントまたはビジネスシステムが製品、サービス、アカウント、またはその他のコンテキストを識別する |
group | メッセージを適切なサポートエージェントグループにルーティングするのに役立つ |
body | コンテキストメッセージの設定。入力欄に自動的に挿入されるいわゆるメッセージ本文 |
チャットの固有識別子は BusinessChat アクセス時にコールされる「urn:biz:〜」の波線の部分。
使い方
いつも通り、プロジェクトの設定の「Link Binary With Libraries」の「+」ボタンから BusinessChat.framework を追加。
使用する Swift ファイルでどこかに下記を記載しインポート。
import BusinessChat
BCChatButton ボタン部分。
AutoLayout のコンストレイントは省略しているが普通のボタンの設定。
let button = BCChatButton(style: .light) button.bounds = CGRect(x: 16, y: 16, width: 160, height: 44) button.addTarget(self, action: #selector(change(sender: )), for: .touchUpInside) self.view.addSubview(button)
BCChatAction は openTranscript にパラメーターを入れるだけで起動する
@objc func callBusinessChat(sender: BCChatButton){ BCChatAction.openTranscript(businessIdentifier: "test", intentParameters: [ BCChatAction.Parameter.group : "group", BCChatAction.Parameter.intent : "intent", BCChatAction.Parameter.body : "body" ]) }