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

На этой странице описывается, как отправлять сообщения на стороне клиента из надстройки, работающей в 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 включает полный пример покадрового обмена сообщениями. После начала действия боковая панель уведомляет основную сцену всякий раз, когда пользователь меняет ввод . Основная сцена также подписывается на обратный frameToFrameMessage для получения обновленного состояния.

Примечания

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

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