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

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

Примечания

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

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