フレーム間メッセージを使用する

このページでは、サイドパネル iframe で実行されているアドオンから、メインステージ iframe で実行されているアドオンに、クライアントサイドでメッセージを送信する方法について説明します。フレーム間のメッセージングはクライアント側でのみ発生するため、メッセージの配信はほぼ瞬時に行われます。

メールを送信するには:

  • サイドパネルからメインステージに移動するには、notifyMainStage() メソッドを使用します。
    await sidePanelClient.notifyMainStage("YOUR_MESSAGE");
  • メインステージからサイドパネルに移動するには、notifySidePanel() メソッドを使用します。
    await mainStageClient.notifySidePanel("YOUR_MESSAGE");

payload の長さは、指定されたサイズ上限に準拠している必要があります。

メッセージを受信するには、アドオンが frameToFrameMessage コールバックに登録する必要があります。次のコードサンプルは、frameToFrameMessage コールバックをサブスクライブする方法を示しています。

sidePanelClient.on('frameToFrameMessage', (arg: FrameToFrameMessage) => {
    // YOUR_CODE
});

GitHub の「Animation」サンプル アドオンには、フレーム間のメッセージングの完全な例が含まれています。アクティビティが開始されると、サイドパネルはユーザーが入力内容を変更するたびにメインステージに通知します。メインステージは、更新された状態を受け取るために frameToFrameMessage コールバックにも登録します。

メモ

  • 特定の参加者によって送信されたフレーム間のメッセージは、その参加者のみに表示されます。他の参加者にメッセージや状態を送信するには、アドオンの状態を共有する方法をご覧ください。

  • メッセージの配信は 1 回のみ試行されます。メッセージを受信するには、受信パネルが開いており、メッセージが送信される前にアプリがコールバックに登録されている必要があります。