React-native bridge for ZoomUs SDK
This is a bridge for ZoomUS Meeting SDK.
NOTE: In August 2024, official bridge has been released.

| Platform | Version | SDK Url | Changelog |
| :------: | :------------ | :-------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------: |
| iOS | 6.6.10.30439 | ZoomSDK | marketplace.zoom.us |
| Android | 6.6.8 | Zoom Meeting SDK | marketplace.zoom.us |
Tested on Android and iOS: (See details)
Pull requests are welcome.
- Example
- Upgrading Guide
- CHANGELOG
- TROUBLESHOOTING
- Screenshare on iOS
- Events
- Size Reduction
- Custom Meeting Activity
Install npm lib: npm install react-native-zoom-us
#### Android
1. Declare permissions
Depending on how you will use the lib, you will need to declare permissions in /android/app/src/main/AndroidManifest.xml.
This is the minimum set of permissions you need to add in order to use audio and video:
``xml
...
`
You may also need the following permissions:
`xml
...
`
2. Add this to /android/app/src/debug/AndroidManifest.xml
`xml`
tools:remove="android:networkSecurityConfig"
tools:replace="android:usesCleartextTraffic"
>
This is needed because ZoomSDK declares android:networkSecurityConfig
3. npm run android
#### iOS
1. Make sure you have appropriate description in Info.plist:
`xml
`
2. Update pods using cd ios/ && pod install && cd ..
3. npm run ios
`typescript
import ZoomUs from 'react-native-zoom-us';
// initialize
await ZoomUs.initialize({
jwtToken: '...',
});
// initialize with extra config
await ZoomUs.initialize(
{
jwtToken: '...',
domain: 'zoom.us',
},
{
disableShowVideoPreviewWhenJoinMeeting: true,
},
);
// Start Meeting
await ZoomUs.startMeeting({
userName: 'Johny',
meetingNumber: '12345678',
zoomAccessToken: zak,
userType: 2, // optional
});
// Join Meeting
await ZoomUs.joinMeeting({
userName: 'Johny',
meetingNumber: '12345678',
});
// Join Meeting with extra params
await ZoomUs.joinMeeting({
userName: 'Johny',
meetingNumber: '12345678',
password: '1234',
noAudio: true,
noVideo: true,
});
// Leave Meeting
await ZoomUs.leaveMeeting();
// Connect Audio
await ZoomUs.connectAudio();
// you can also use autoConnectAudio: true in ZoomUs.joinMeeting`
Hook sample for listening events:
`tsx
import ZoomUs from 'react-native-zoom-us';
useEffect(() => {
const listener = ZoomUs.onMeetingStatusChange(({event}) => {
console.log('onMeetingStatusChange', event);
});
const joinListener = ZoomUs.onMeetingJoined(() => {
console.log('onMeetingJoined');
});
return () => {
listener.remove();
joinListener.remove();
};
}, []);
`
If you need more events, take a look Events
The plugin has been tested for joinMeeting and startMeeting` using smoke test procedure:
- react-native-zoom-us: 17.0.0
- react-native: 0.79.7
- node: 18.20.7
- macOS: 26.0.1 M1
- XCode: 26.0
- iOS: 16.4 (simulator)
- iOS: 16.7 (iPhone 8)
- Android minSdkVersion: 28
- iOS minSdkVersion: 15
#### Does library support Expo?
You have to eject your expo project to use this library.