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