Use frame-to-frame messaging

This page describes how to send messages on the client side from an add-on running in the side-panel iframe to an add-on running in the main stage iframe. Frame-to-frame messaging only occurs on the client side, so message delivery is near instantaneous.

To send a message:

   
 await 
  
 sidePanelClient 
 . 
 notifyMainStage 
 ( 
 " YOUR_MESSAGE 
" 
 ); 
 
   
 await 
  
 mainStageClient 
 . 
 notifySidePanel 
 ( 
 " YOUR_MESSAGE 
" 
 ); 
 

The payload length must conform to its specified size limit.

To receive the message, the add-on must subscribe to the frameToFrameMessage callback. The following code sample shows how to subscribe to a frameToFrameMessage callback:

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

The "Animation" sample add-on on GitHub includes a full example of frame-to-frame messaging. After the activity starts, the side panel notifies the main stage whenever the user changes an input . The main stage also subscribes to the frameToFrameMessage callback to receive updated state.

Notes

  • Frame-to-frame messages sent by a given participant are only visible by that same participant. To send messages or state to other participants, learn how to share add-on state .

  • Message delivery is only attempted once. To receive messages, the receiving panel must be open and the app must subscribe to the callback before the message is sent.

Design a Mobile Site
View Site in Mobile | Classic
Share by: