Giter VIP home page Giter VIP logo

react-native-zoom-us's Introduction

react-native-zoom-us

This is a bridge for ZoomUS SDK:

Platform Version Url Changelog
iOS 5.7.1.644 https://github.com/zoom/zoom-sdk-ios https://marketplace.zoom.us/docs/changelog#labels/client-sdk-i-os
Android 5.7.1.1267 https://github.com/zoom/zoom-sdk-android https://marketplace.zoom.us/docs/changelog#labels/client-sdk-android

Tested on XCode 12.4 and react-native 0.64.2. (See details)

Pull requests are welcome.

Getting started

$ npm install react-native-zoom-us

Installation

If you have react-native < 0.60, check Full Linking Guide

Android

  1. Set pickFirst rules in android/app/build.gradle
android {
    packagingOptions {
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    }
}
  1. In your MainApplication.java inside of onCreate add SoLoader.loadLibrary("zoom");:
@Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    SoLoader.loadLibrary("zoom"); // <-- ADD THIS LINE
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
  }
  1. Optional: Add custom activity config (android/app/src/main/res/values/config.xml)

If you have custom conference activity, instead official activity or custom UI.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="zm_config_conf_activity">ID of your custom activity</string>
</resources>

See docs for more details.

iOS

  1. Make sure you have appropriate description in Info.plist:
<key>NSBluetoothPeripheralUsageDescription</key>
<string>We will use your Bluetooth to access your Bluetooth headphones.</string>
	
<key>NSCameraUsageDescription</key>
<string>For people to see you during meetings, we need access to your camera.</string>
	
<key>NSMicrophoneUsageDescription</key>
<string>For people to hear you during meetings, we need access to your microphone.</string>
	
<key>NSPhotoLibraryUsageDescription</key>
<string>For people to share, we need access to your photos.</string>
  1. Update pods using cd ios/ && pod install && cd ..

  2. Make sure to set ENABLE_BITCODE = NO; for both Debug and Release because bitcode is not supported by Zoom iOS SDK

  3. Optional: Implement custom UI See docs for more details.

Usage

import ZoomUs from 'react-native-zoom-us';

// initialize minimal
await ZoomUs.initialize({
  clientKey: '...',
  clientSecret: '...',
})

// initialize using JWT
await ZoomUs.initialize({
  jwtToken: '...',
})

// initialize with extra config
await ZoomUs.initialize({
  clientKey: '...',
  clientSecret: '...',
  domain: 'zoom.us'
}, {
  disableShowVideoPreviewWhenJoinMeeting: true,
  enableCustomizedMeetingUI: true
})


// Start Meeting
await ZoomUs.startMeeting({
  userName: 'Johny',
  meetingNumber: '12345678',
  userId: 'our-identifier',
  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`

Docs

Testing

The plugin has been tested for joinMeeting using [smoke test procedure]https://github.com/mieszko4/react-native-zoom-us-test#smoke-test-procedure:

  • react-native-zoom-us: 6.1.1
  • react-native: 0.64.2
  • node: 14.16.0
  • macOS: 10.15.5
  • XCode: 12.4
  • android minSdkVersion: 21

FAQ

Does library support Expo?

You have to eject your expo project to use this library.

react-native-zoom-us's People

Contributors

anusha-gurajapu avatar hans00 avatar jcamins avatar mialy avatar mieszko4 avatar nadishan avatar nguyenson2012 avatar paulo-mogollon avatar pmogollons avatar yatanvesh avatar zvs001 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.