Flutter Zoom Meeting SDK
A Flutter plugin for integrating the Zoom Meeting SDK across multiple platforms.
Tested with SDK version v6.4.3.28970
.
This plugin assumes you have basic knowledge of the Zoom application and the Zoom Meeting SDK, including concepts like JWT authentication and meeting numbers.
Supported Platforms
- Android
- iOS
- macOS
- Windows
â ī¸ This plugin does NOT bundle the SDK binaries. You must download the Zoom Meeting SDK manually and configure it for each platform.
Getting Started
1. Download the SDK
- Go to the Zoom App Marketplace
- Sign in to your Zoom account.
- Click Develop â Build App
- Create a General App.
- Under Build your app > Features > Embed, enable the Meeting SDK.
- Download the SDK files for each target platform.
đ For more information: see Get Credentials
2. Platform Setup
Follow the platform-specific setup guides:
Usage
After completing the platform-specific setup, you can start using the plugin to integrate Zoom meeting functionality into your Flutter app. Below is a step-by-step example demonstrating how to initialize the SDK, authenticate with a JWT token, handle events, and join a meeting.
1. Initialize the SDK
_zoomSdk.initZoom();
2. Authenticate using your JWT token
_zoomSdk.authZoom(
jwtToken: "<YOUR_JWT_TOKEN>",
);
đ Refer to the Zoom docs on JWT tokens
3. Listen for authentication results and join the meeting
_zoomSdk.onAuthenticationReturn.listen((event) {
if (event.params?.statusEnum == StatusZoomError.success) {
_zoomSdk.joinMeeting(
ZoomMeetingSdkRequest(
meetingNumber: '<YOUR_MEETING_NUMBER>',
password: '<YOUR_MEETING_PASSWORD>',
displayName: '<PARTICIPANT_NAME>',
),
);
}
});
4. Uninitialize the SDK (recommended when done)
_zoomSdk.unInitZoom();
đĄ You can call this in the
dispose()
method of your widget.
5. Complete Example
import 'package:flutter/material.dart';
import 'package:flutter_zoom_meeting_sdk/enums/status_zoom_error.dart';
import 'package:flutter_zoom_meeting_sdk/flutter_zoom_meeting_sdk.dart';
import 'package:flutter_zoom_meeting_sdk/models/zoom_meeting_sdk_request.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final FlutterZoomMeetingSdk _zoomSdk = FlutterZoomMeetingSdk();
@override
void dispose() {
_zoomSdk.unInitZoom();
super.dispose();
}
@override
Widget build(BuildContext context) {
_zoomSdk.initZoom();
_zoomSdk.authZoom(jwtToken: "<YOUR_JWT_TOKEN>");
_zoomSdk.onAuthenticationReturn.listen((event) {
if (event.params?.statusEnum == StatusZoomError.success) {
_zoomSdk.joinMeeting(
ZoomMeetingSdkRequest(
meetingNumber: '<YOUR_MEETING_NUMBER>',
password: '<YOUR_MEETING_PASSWORD>',
displayName: '<PARTICIPANT_NAME>',
),
);
}
});
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Flutter Zoom Meeting SDK Plugin')),
body: Center(),
),
);
}
}
SDK Authorization (JWT Token)
Zoom Meeting SDK requires a valid JWT (JSON Web Token) for authentication before joining meetings. This section explains how to generate and use the token within your Flutter app.
1. How to Generate a JWT Token
Zoom provides a sample JWT auth endpoint you can use to generate tokens securely:
- Clone the GitHub repo linked above.
- Set up and run the sample auth server locally or on your own backend.
- From your Flutter app, use the getJWTToken() method to request a token:
final result = await FlutterZoomMeetingSdk().getJWTToken(
authEndpoint: _authEndpoint,
meetingNumber: _meetingNumber,
role: _role, // 0: Participant, 1: Host / Co-Host
);
final signature = result?.token;
if (signature != null) {
print('Signature: $signature');
return signature;
} else {
throw Exception("Failed to get signature.");
}
âšī¸ For detailed information, refer to the official Meeting SDK authorization guide.
Example
For a complete usage reference, see the full example code.
API Reference
For a full list of available methods, event streams, and data models, refer to the API Reference.
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request for improvements, bug fixes, or new features.
License
MIT License â see LICENSE for details.
Libraries
- enums/action_type
- enums/event_type
- enums/platform_type
- enums/status_meeting_end_reason
- enums/status_meeting_error
- enums/status_meeting_status
- enums/status_meeting_type
- enums/status_zoom_error
- flutter_zoom_meeting_sdk
- flutter_zoom_meeting_sdk_method_channel
- flutter_zoom_meeting_sdk_platform_interface
- helpers/common
- helpers/message
- models/flutter_zoom_meeting_sdk_action_response
- models/flutter_zoom_meeting_sdk_event_response
- models/jwt_response
- models/zoom_meeting_sdk_request
- models/zoom_meeting_sdk_response