Functionやcommandがユーザーインタラクションを必要とする場合や、特定の情報をユーザーに表示する必要がある場合、WAM(Web Application Module)を作成して使用できます。
WAMはSPA(Single-page application)形式で実装する必要があります。WAMを実装するためのライブラリ、フレームワーク、バンドラーなどは開発者の選択であり、どれを選択しても問題ありません。
開発したWAMをアプリサーバードメインの下位エンドポイントでserveするように設定した後、App設定段階で「WAM Endpoint」に該当するendpoint URLを入力するとWAM登録が完了します。
例えば開発したWAMのwamNameがexample-1-appの場合、サーバーでは${WAM_ENDPOINT}/example-1-app URLを呼び出します。
WAMはデスク/フロント内で単一のUIのように表示されますが、実行自体は別の隔離された空間であるWAM Controller内で実行されます。
WAM ControllerはWAMが円滑に動作するように、以下の役割を果たします。
WAMをiframeを通じて隔離することで、WAMとこれを駆動するクライアント(Desk、Front)がそれぞれ安全な環境で動作できるようにします。
WAMの動作に必要なインターフェースを提供します。
WAM開発時には、WAM Controllerが提供するインターフェースを使用して様々な機能を実装できます。また、WAMのサイズ調整や正常なclose動作の実装などには、WAM Controllerが提供する関数を使用する必要があります。
WAM Controllerが提供するインターフェースは、ChannelIOWamネームスペースを通じて利用できます。
WAM Controllerが提供するインターフェースは以下の通りです。
現在実行中のWAMを終了します。
終了と同時にCommandを実行したい場合、引数として実行したいCommandの情報を渡します。
引数名 | タイプ | 説明 |
|---|---|---|
appId | string | 呼び出そうとするcommandを提供するappのid |
name | string | 呼び出そうとするcommandのname |
params | object | 呼び出そうとするcommandに必要なパラメータ |
単に現在実行中のWAMを閉じたい場合、引数を渡す必要はありません。
現在実行中のWAMを閉じてコマンドを実行したい場合、引数として値を渡します。
DeskでWAMのサイズを調整します。
引数名 | タイプ | 説明 |
|---|---|---|
width | number | 変更されるWAMのwidth |
height | number | 変更されるWAMのheight |
Functionを呼び出します。Functionの詳細については、Appの開発方法 - Functionをご参照ください。
引数名 | タイプ | 説明 |
|---|---|---|
appId | string | 呼び出そうとするfunctionを実装するappのid |
name | string | 呼び出そうとするfunctionのname |
params | object | 呼び出そうとするfunctionに必要なパラメータ |
以下は、appIdがEXAMPLE_APP_IDであるAppのgetUsers Functionを空のparamsと共に呼び出すコードの例です:
async function getUserList() {
const { result } = await window.ChannelIOWam.callFunction({
appId: 'EXAMPLE_APP_ID',
name: 'getUsers',
params: {},
})
return result.users
}Native functionを呼び出します。これにより、チャネルトークデータを読み取り、修正できます。Native functionの詳細については、Appの開発方法 - Functionをご参照ください。
引数名 | タイプ | 説明 |
|---|---|---|
name | string | 呼び出そうとするnative functionのname |
params | object | 呼び出そうとするnative functionに必要なパラメータ |
以下はチームチャットの特定のグループにメッセージを送信するコードの例です:
以下は特定のユーザーチャットに内部会話としてメッセージを送信するコードの例です:
Commandを呼び出します。Commandの詳細については、Appの開発方法 - Commandをご参照ください。
引数名 | タイプ | 説明 |
|---|---|---|
appId | string | 呼び出そうとするcommandを実装するappのid |
name | string | 呼び出そうとするcommandのname |
params | object | 呼び出そうとするcommandに必要なパラメータ |
以下は、appIdがEXAMPLE_APP_IDであるAppのorder-cancellation Commandをparamsと共に呼び出すコードの例です: