Subchapter 157.3
references/events.mdMarkdown4 KBView on GitHub
Subscribe to events to respond to meeting, user, and app state changes.
IMPORTANT: Register event listeners AFTER successful zoomSdk.config() call. Events must be listed in the capabilities array.
import zoomSdk from '@zoom/appssdk';
await zoomSdk.config({
capabilities: ['onMeeting', 'onParticipantChange', 'onAuthorized', ...],
version: '0.16'
});
zoomSdk.addEventListener('onMeeting', (event) => {
console.log('Meeting event:', event);
});Meeting lifecycle changes (start, end, etc.).
zoomSdk.addEventListener('onMeeting', (event) => {
// event: { action: 'started' | 'ended' | ... }
});Participants join or leave.
zoomSdk.addEventListener('onParticipantChange', (event) => {
const { participants, action } = event;
// action: 'join' | 'leave'
// participants: [{ participantId, screenName, role }]
});Active speaker changes.
zoomSdk.addEventListener('onActiveSpeakerChange', (event) => {
const { participantId, screenName } = event;
});User moves between breakout rooms.
zoomSdk.addEventListener('onBreakoutRoomChange', (event) => {
// Re-fetch meeting UUID and state for new room
});Current user’s context changes (role, name, mute status, etc.).
zoomSdk.addEventListener('onMyUserContextChange', (event) => {
const { role, screenName } = event;
});Current user’s audio/video status changes.
zoomSdk.addEventListener('onMyMediaChange', (event) => {
const { audio, video } = event;
// audio: { muted: true/false }
// video: { started: true/false }
});App sharing status changes.
zoomSdk.addEventListener('onShareApp', (event) => {
const { isShared } = event;
});App popped out to separate window or back.
zoomSdk.addEventListener('onAppPopout', (event) => {
const { isPopout } = event;
});Running context changes (e.g., meeting starts while in main client).
zoomSdk.addEventListener('onRunningContextChange', (event) => {
const { runningContext } = event;
});In-Client OAuth authorization completed.
zoomSdk.addEventListener('onAuthorized', (event) => {
const { code, state } = event;
// Send code to backend for token exchange
});Another app instance connected.
zoomSdk.addEventListener('onConnect', (event) => {
console.log('Other instance connected');
});Message received from connected instance.
zoomSdk.addEventListener('onMessage', (event) => {
const data = JSON.parse(event.payload);
});Collaborate mode state changes.
zoomSdk.addEventListener('onCollaborateChange', (event) => {
console.log('Collaborate state:', event);
});Immersive/camera rendering context opened.
zoomSdk.addEventListener('onRenderedAppOpened', (event) => {
console.log('Rendering context ready');
});Participant sends a reaction.
zoomSdk.addEventListener('onReaction', (event) => {
const { participantId, reaction } = event;
});const handler = (event) => { ... };
zoomSdk.addEventListener('onMeeting', handler);
// Later, remove it
zoomSdk.removeEventListener('onMeeting', handler);