Используйте обмен сообщениями между фреймами

На этой странице описано, как отправлять сообщения на стороне клиента из дополнения, запущенного в iframe боковой панели, в дополнение, запущенное в iframe основной рабочей области. Обмен сообщениями между фреймами происходит только на стороне клиента, поэтому доставка сообщений происходит практически мгновенно.

Чтобы отправить сообщение, сделайте следующее:

  • Чтобы переместить объект с боковой панели на главную сцену, используйте метод notifyMainStage().
    await sidePanelClient.notifyMainStage("YOUR_MESSAGE");
  • Чтобы переместить участника с главной сцены на боковую панель, используйте метод notifySidePanel().
    await mainStageClient.notifySidePanel("YOUR_MESSAGE");

Длина payload не должна превышать указанное ограничение.

Чтобы получить сообщение, дополнение должно подписаться на обратный вызов frameToFrameMessage. В приведенном ниже фрагменте кода показано, как подписаться на обратный вызов frameToFrameMessage:

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

Пример дополнения Animation на GitHub включает полный пример обмена сообщениями между фреймами. После запуска активности боковая панель уведомляет основную сцену о каждом изменении ввода пользователем. Основная сцена также подписывается на обратный вызов frameToFrameMessage, чтобы получать обновленное состояние.

Примечания

  • Сообщения, отправленные участником, видны только ему. Чтобы отправлять сообщения или статус другим участникам, узнайте, как поделиться статусом дополнения.

  • Попытка доставки сообщения выполняется только один раз. Чтобы получать сообщения, панель должна быть открыта, а приложение должно подписаться на обратный вызов до отправки сообщения.