flutter_zoom_meeting_wrapper 0.0.2
flutter_zoom_meeting_wrapper: ^0.0.2 copied to clipboard
A Flutter plugin to integrate Zoom Meeting SDK directly in your app. Join meetings without switching to Zoom app. Simple initialization with JWT authentication.
π± Flutter Zoom Meeting Wrapper #
A Flutter plugin that allows you to integrate the Zoom Meeting SDK into your Flutter application. This plugin enables users to join Zoom meetings directly within your app without switching to the Zoom app.
β¨ Features #
π Easy integration with the Zoom Meeting SDK
π Initialize SDK using a JWT token
π― Join meetings directly within your app (no Zoom app required)
π± Android & iOS platform support
π Full audio and video meeting experience
π Secure authentication flow via JWT
π¦ Installation #
Add the following to your pubspec.yaml file:
dependencies:
flutter_zoom_meeting_wrapper: ^0.0.2
βοΈ Mandatory Zoom SDK Setup #
π€ Android Setup #
-
Add the dependency and run
flutter pub get. -
Download the Zoom SDK ZIP from the following link:
π Zoom SDK Download -
Extract the ZIP file after downloading.
-
Copy the
libsfolder and paste it inside your Flutter pub-cache directory at:~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/android/π Replace
0.0.2with the version youβre using, if different. -
Or run the following command to open the folder directly:
open ~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/android
β οΈ Important: The
libsfolder must be placed in the correct location for the plugin to function properly.
π iOS Setup #
The iOS integration requires placing the Zoom Meeting SDK frameworks into the pluginβs ios/Frameworks/ directory inside the Flutter pub-cache. Follow these steps:
Step 1 β Download the Zoom iOS Meeting SDK
You can download the iOS SDK using either option below:
Option A β Direct Download (Google Drive)
π Download iOS SDK from Google Drive
Extract the ZIP file after downloading.
Option B β Zoom Marketplace
- Go to https://marketplace.zoom.us/ and sign in.
- Navigate to your appβs credentials page.
- Download the iOS Meeting SDK ZIP package.
- Extract the ZIP file.
Step 2 β Copy frameworks into the plugin
Open the pub-cache directory for the pluginβs iOS folder:
open ~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/ios/Frameworks
π Replace
0.0.2with the version youβre using, if different.
Copy all of the following items from the extracted Zoom SDK into the Frameworks/ folder:
| File / Folder | Description |
|---|---|
MobileRTC.xcframework |
Core Zoom Meeting SDK |
MobileRTCResources.bundle |
UI resources (required at runtime) |
MobileRTCScreenShare.xcframework |
Screen sharing support |
zoomcml.xcframework |
Zoom companion framework (required) |
After copying, the folder should look like:
ios/Frameworks/
βββ MobileRTC.xcframework
βββ MobileRTCResources.bundle
βββ MobileRTCScreenShare.xcframework
βββ zoomcml.xcframework
β οΈ Important:
zoomcml.xcframeworkis required. If it is missing,pod installwill fail with an error.
Step 3 β Configure minimum iOS version
In your appβs ios/Podfile, make sure the platform is set to iOS 15.0 or higher:
platform :ios, β15.0β
Step 4 β Exclude unsupported simulator architectures
The Zoom SDK frameworks include arm64 simulator slices only (no x86_64). Add the following to your ios/Podfileβs post_install block to prevent build errors on Intel Mac simulators:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
installer.aggregate_targets.each do |aggregate_target|
aggregate_target.user_project.native_targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[βEXCLUDED_ARCHS[sdk=iphonesimulator*]β] = β$(inherited) i386 x86_64β
config.build_settings[βSUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPADβ] = βNOβ
end
end
aggregate_target.user_project.save
end
end
Step 5 β Install pods
Run the following from your projectβs ios/ directory:
cd ios && pod install
Step 6 β Add required permissions
Add the following keys to your appβs ios/Runner/Info.plist so the system grants Zoom the access it needs:
<key>NSCameraUsageDescription</key>
<string>Camera access is required for video meetings.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access is required for audio in meetings.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo library access is required to share images in meetings.</string>
Step 7 β Build and run on a device
flutter run
β οΈ Note: The Zoom SDK simulator frameworks are
arm64-only. Testing on a physical iPhone or iPad is recommended. Running on an Intel-based Mac simulator may not work even with the architecture exclusions above.
π Getting Started with Zoom SDK #
- Create a Zoom Developer Account at https://marketplace.zoom.us/
- Create an app in the Zoom Marketplace
- Get your API Key and API Secret from the app credentials
- Use these to generate your JWT token
π Generate JWT Token #
To generate a ZOOM JWT token, you can use https://jwt.io/ with the following payload and signature: Payload:
{
"appKey": "ZOOM-CLIENT-KEY",
"iat": ANY-TIME-STAMP,
"exp": ANY-TIME-STAMP, //greater than iat
"tokenExp": ANY-TIME-STAMP //greater than iat
}
Verify Signature:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
"ZOOM-CLIENT-SECRET"
)
π Usage #
Initialize the SDK #
First, initialize the Zoom SDK with your JWT token:
import 'package:flutter_zoom_meeting_wrapper/flutter_zoom_meeting_wrapper.dart';
// Initialize Zoom SDK
bool isInitialized = await ZoomMeetingWrapper.initZoom(jwtToken);
Join a Meeting #
Once initialized, you can join a Zoom meeting like this:
bool joinSuccess = await ZoomMeetingWrapper.joinMeeting(
meetingId: "your_meeting_id",
meetingPassword: "meeting_password",
displayName: "Your Name",
);
β οΈ Common Issues #
JWT Token Invalid: Ensure your API Key and Secret are correct, and check that your system time is accurate.
Failed to initialize SDK: Make sure you have a stable internet connection and valid JWT token.
Cannot join meeting: Verify that the meeting ID and password are correct.
β‘ Limitations #
πΌοΈ Custom UI overlays are not supported in the current version
πΉ Recording meetings is not supported in this plugin
π₯οΈ Screen sharing functionality is limited to platform capabilities
π¨βπ» Code Contributors #
