Channel Developers

Functionやcommandがユーザーインタラクションを必要とする場合や、特定の情報をユーザーに表示する必要がある場合、WAM(Web Application Module)を作成して使用できます。

WAMはSPA(Single-page application)形式で実装する必要があります。WAMを実装するためのライブラリ、フレームワーク、バンドラーなどは開発者の選択であり、どれを選択しても問題ありません。

開発したWAMをアプリサーバードメインの下位エンドポイントでserveするように設定した後、App設定段階で「WAM Endpoint」に該当するendpoint URLを入力するとWAM登録が完了します。

例えば開発したWAMのwamNameexample-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ネームスペースを通じて利用できます。

TypeScript

WAM Controllerが提供するインターフェースは以下の通りです。

現在実行中のWAMを終了します。

終了と同時にCommandを実行したい場合、引数として実行したいCommandの情報を渡します。

引数名

タイプ

説明

appId

string

呼び出そうとするcommandを提供するappのid

name

string

呼び出そうとするcommandのname

params

object

呼び出そうとするcommandに必要なパラメータ

TypeScript

単に現在実行中のWAMを閉じたい場合、引数を渡す必要はありません。

TypeScript

現在実行中のWAMを閉じてコマンドを実行したい場合、引数として値を渡します。

TypeScript

DeskでWAMのサイズを調整します。

引数名

タイプ

説明

width

number

変更されるWAMのwidth

height

number

変更されるWAMのheight

TypeScript

Functionを呼び出します。Functionの詳細については、Appの開発方法 - Functionをご参照ください。

引数名

タイプ

説明

appId

string

呼び出そうとするfunctionを実装するappのid

name

string

呼び出そうとするfunctionのname

params

object

呼び出そうとするfunctionに必要なパラメータ

TypeScript

以下は、appIdEXAMPLE_APP_IDであるAppのgetUsers Functionを空のparamsと共に呼び出すコードの例です:

Plaintext
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に必要なパラメータ

TypeScript

以下はチームチャットの特定のグループにメッセージを送信するコードの例です:

TypeScript

以下は特定のユーザーチャットに内部会話としてメッセージを送信するコードの例です:

TypeScript

Commandを呼び出します。Commandの詳細については、Appの開発方法 - Commandをご参照ください。

引数名

タイプ

説明

appId

string

呼び出そうとするcommandを実装するappのid

name

string

呼び出そうとするcommandのname

params

object

呼び出そうとするcommandに必要なパラメータ

TypeScript

以下は、appIdEXAMPLE_APP_IDであるAppのorder-cancellation Commandをparamsと共に呼び出すコードの例です:

TypeScript