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

  1. Go to the Zoom App Marketplace
  2. Sign in to your Zoom account.
  3. Click Develop → Build App
  4. Create a General App.
  5. Under Build your app > Features > Embed, enable the Meeting SDK.
  6. 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>',
      ),
    );
  }
});
_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:

  1. Clone the GitHub repo linked above.
  2. Set up and run the sample auth server locally or on your own backend.
  3. 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.