⚠️ Platform Differences NoticeZoom Meeting SDK behavior is not fully consistent across all platforms. Some functions or event streams may behave slightly differently or be unavailable depending on the target platform (
macOS,iOS,Android,Windows). Always test platform-specific behavior thoroughly.For returned status values, check platform-specific availability via inline hints in your IDE (e.g.,
/// mac | ios | android | windows). These hints indicate which platforms support the value.Note: All the
codevalues likestatusCode,errorCode, andendReasonCodeare returned directly from the Zoom Meeting SDK and represent enum values defined per platform. These enum values are not guaranteed to be consistent across platforms, so prefer usingstatusLabelorstatusEnumwhen writing your code.
- Description: Initialize the SDK.
- Request: None
- Response: Future<FlutterZoomMeetingSdkActionResponse<InitParamsResponse>>
- Example:
await FlutterZoomMeetingSdk().initZoom();
- Description: Authenticate SDK using your JWT token.
- Request:
jwtToken:String— The JWT token used for authentication.
- Response: Future<FlutterZoomMeetingSdkActionResponse<AuthParamsResponse>>
- Example:
await FlutterZoomMeetingSdk().authZoom(jwtToken: jwtToken);
- Description: Join a meeting using a Meeting ID and password. For webinars or meetings with registration, you must also pass a
webinarToken. - Request:
meetingNumber:String— The Zoom meeting ID.password:String— The meeting password.displayName:String— The participant's display name.webinarToken:String— (Optional) The webinar token for webinars or registered meetings.
- Response: Future<FlutterZoomMeetingSdkActionResponse<JoinParamsResponse>>
- Example:
await FlutterZoomMeetingSdk().joinMeeting(ZoomMeetingSdkRequest( meetingNumber: _meetingNumber, password: _passCode, displayName: _userName, webinarToken: _webinarToken, ));
- Description: Uninitialize and clean up the SDK.
- Request: None
- Response: Future<FlutterZoomMeetingSdkActionResponse>
- Example:
await FlutterZoomMeetingSdk().unInitZoom();
- Description: Retrieve a JWT token (signature) from a custom authentication endpoint. This token is required to authenticate the Zoom Meeting SDK using JWT.
- Request:
authEndpoint:String— The URL of your server that returns a Zoom JWT token.meetingNumber:String— The Zoom meeting ID.role:int— The user's role in the meeting:0: Participant1: Host / Co-Host
- Response: Future<JwtResponse?>
- Example:
final result = await _zoomSdk.getJWTToken( authEndpoint: _authEndpoint, meetingNumber: _meetingNumber, role: _role, ); final signature = result?.token;
- Description: Triggered when the SDK authentication succeeds or fails.
- Response: Stream<FlutterZoomMeetingSdkEventResponse<EventAuthenticateReturnParams>>
- Platform:
macOS|iOS|android|windows - Example:
FlutterZoomMeetingSdk().onAuthenticationReturn.listen((event) { if (event.params?.statusEnum == StatusZoomError.success) { joinMeeting(); } });
- Description: Triggered when the JWT token is expired. Generate a new token.
- Response: Stream<FlutterZoomMeetingSdkEventResponse>
- Platform:
macOS|iOS|android|windows - Example:
FlutterZoomMeetingSdk().onZoomAuthIdentityExpired.listen((event) { // Refresh JWT token here });
- Description: Triggered when the meeting status changes.
- Response: Stream<FlutterZoomMeetingSdkEventResponse<EventMeetingStatusChangedParams>>
- Platform:
macOS|iOS|android|windows - Example:
FlutterZoomMeetingSdk().onMeetingStatusChanged.listen((event) { // Handle meeting status });
- Description: Triggered right before the meeting starts.
- Response: Stream<FlutterZoomMeetingSdkEventResponse<EventMeetingParameterNotificationParams>>
- Platform:
macOS|iOS|android|windows - Example:
FlutterZoomMeetingSdk().onMeetingParameterNotification.listen((event) { // Handle meeting parameters });
- Description: Triggered when a meeting encounters an error (e.g., connection issues, invalid parameters).
- Response: Stream<FlutterZoomMeetingSdkEventResponse<EventMeetingErrorParams>>
- Platform:
iOSonly - Note: Only available on
iOSdue to SDK inconsistencies. - Example:
FlutterZoomMeetingSdk().onMeetingError.listen((event) { // Handle meeting error });
- Description: Triggered when a meeting ends, providing the end reason.
- Response: Stream<FlutterZoomMeetingSdkEventResponse<EventMeetingEndedReasonParams>>
- Platform:
iOSonly - Note: Only available on
iOSdue to SDK inconsistencies. - Example:
FlutterZoomMeetingSdk().onMeetingEndedReason.listen((event) { // Handle meeting end reason });
Generic wrapper for all SDK function responses.
- Fields:
platform:PlatformType—android,ios,macos,windowsaction:ActionType—initZoom,authZoom,joinMeeting,unInitZoomisSuccess:bool— Whether the action succeeded.message:String— Message or error info.params:T?— Optional platform-specific data.
- Fields:
statusCode:int?statusLabel:String?
- Fields:
statusCode:int?statusLabel:String?
- Fields:
statusCode:int?statusLabel:String?
Generic wrapper for all SDK events.
- Fields:
platform:PlatformTypeevent:EventTypeoriEvent:String— Original Zoom SDK event name (platform-specific).params:T?— Optional function-specific parameters.
⚠️ UsestatusLabelorstatusEnuminstead ofstatusCodeas values may differ across platforms.
- Fields:
statusCode:intstatusLabel:StringstatusEnum:StatusZoomError
⚠️ Behavior differs across platforms:
iOS:errorCodeandendReasonCodeare separate events.android:endReasonCodenot available.windows: provideserrorCodeorendReasonCodebased on status.
- Fields:
statusCode:intstatusLabel:StringstatusEnum:StatusZoomErrorerrorCode:interrorLabel:StringerrorEnum:StatusMeetingErrorendReasonCode:intendReasonLabel:StringendReasonEnum:StatusMeetingEndReason
- Fields:
isAutoRecordingCloud:boolisAutoRecordingLocal:boolisViewOnly:boolmeetingHost:StringmeetingTopic:StringmeetingNumber:intmeetingType:intmeetingTypeLabel:StringmeetingTypeEnum:StatusMeetingType
- Fields:
errorCode:interrorLabel:StringerrorEnum:StatusMeetingErrormessage:String
- Fields:
endReasonCode:intendReasonLabel:StringendReasonEnum:StatusMeetingEndReason
