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

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

メッセージを送信するには:

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

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

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

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

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

メモ

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

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