@7chairs/react-native-zoom 中文文档教程

发布于 3年前 浏览 23 项目主页 更新于 3年前

react-native-zoom

这是 ZoomUS SDK 的桥梁:

  • android: https://github.com/zoom/zoom-sdk-android
  • ios: https://github.com/zoom/zoom-sdk-ios

在 XCode 11.5 和节点 12.18.1 上测试。

Getting started

$ npm i @7chairs/react-native-zoom

Installation

库将自动链接。

如果你有 react-native < 0.60,查看Linking Guide

android

因为我们使用zoom sdk来自本地“./libs”文件夹的 android 版本 apk 无法打包。 因此,您需要执行以下步骤:

  1. 在 android studio 中转到:文件 -> 新建-> 新模块 -> 导入 .JAR/.AAR 包

  2. 导入 mobilertc.aar 和 commonlib.aar。 完成后,你应该在你的 android 根目录中将 'mobilertc' 和 'commonlib' 文件夹

  3. 添加到 settings.gradle

include ':mobilertc'
include ':commonlib'
project(':mobilertc').projectDir = file("./mobilertc")
project(':commonlib').projectDir = file("./commonlib")

iOS

确保你在 Info.plist 中有适当的描述:

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  • NSPhotoLibraryUsageDescription

Usage

import Zoom from "@7chairs/react-native-zoom";

// initialize minimal
await Zoom.initialize({
  clientKey: "...",
  clientSecret: "...",
});

// initialize with extra config
const { initialized } = await Zoom.initialize(
  {
    clientKey: "...",
    clientSecret: "...",
    domain: "zoom.us",
  },
  {
    disableShowVideoPreviewWhenJoinMeeting: true,
  }
);

// if (!initialized) get callback event for initialize results
Zoom.onInitResults(callback: RNZoomInitResultEventCallback)

// Start Meeting
await Zoom.startMeeting({
  userName: "Johny",
  meetingNumber: "12345678",
  userId: "our-identifier",
  zoomAccessToken: zak,
  userType: 2, // optional
});

// Join Meeting
await Zoom.joinMeeting({
  userName: "Joh",
  meetingNumber: "12345678",
});

// Join Meeting with extra params
await Zoom.joinMeeting({
  userName: "Joh",
  meetingNumber: "12345678",
  password: "1234",
  participantID: "our-unique-id",
  zoomAccessToken: "token",
  noAudio: true,
  noVideo: true,
});

// Join Meeting with zoom meeting url
await Zoom.joinMeetingWithWebUrl("<zoom_meeting_url>");

// Register event callback for join meeting status
Zoom.addMeetingStatusEventListener(callback: RNZoomMeetingStatusEventCallback);

// Unregister listener
Zoom.removeMeetingStatusEventListener();

In Meeting Events

import Zoom from "@7chairs/react-native-zoom";

// Get My User Meeting Info
await Zoom.getMyUserMeetingInfo(): Promise<RNZoomMyselfMeetingInfo>

// Register listener to inMeetingEvents
Zoom.addInMeetingEventListener((callback: RNZoomInMeetingEventCallback) => {
  const { event, payload } = callback;
  //...
});
// Unregister listener
Zoom.removeInMeetingEventListener();

events could be: [See iOS/Android SDK for more details]

"meeting.user.video.active";
"meeting.user.video.speaker";
"meeting.user.video.status";
"meeting.user.audio.status";
"meeting.user.joined";
"meeting.user.left";

FAQ

Does library support Expo?

你必须弹出你的 expo 项目才能使用这个库。

react-native-zoom

This is a bridge for ZoomUS SDK:

  • android: https://github.com/zoom/zoom-sdk-android
  • ios: https://github.com/zoom/zoom-sdk-ios

Tested on XCode 11.5 and node 12.18.1.

Getting started

$ npm i @7chairs/react-native-zoom

Installation

Library will be linked automatically.

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

android

Since we use zoom sdk from local './libs' folder android release apk could not be packed. Therefore you will need to do this following steps:

  1. in android studio go to: File -> New -> New Module -> Import .JAR/.AAR Package

  2. import both mobilertc.aar and commonlib.aar. after doind so you should have in your android root directory both 'mobilertc' and 'commonlib' folders

  3. add to settings.gradle

include ':mobilertc'
include ':commonlib'
project(':mobilertc').projectDir = file("./mobilertc")
project(':commonlib').projectDir = file("./commonlib")

iOS

Make sure you have appropriate description in Info.plist:

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  • NSPhotoLibraryUsageDescription

Usage

import Zoom from "@7chairs/react-native-zoom";

// initialize minimal
await Zoom.initialize({
  clientKey: "...",
  clientSecret: "...",
});

// initialize with extra config
const { initialized } = await Zoom.initialize(
  {
    clientKey: "...",
    clientSecret: "...",
    domain: "zoom.us",
  },
  {
    disableShowVideoPreviewWhenJoinMeeting: true,
  }
);

// if (!initialized) get callback event for initialize results
Zoom.onInitResults(callback: RNZoomInitResultEventCallback)

// Start Meeting
await Zoom.startMeeting({
  userName: "Johny",
  meetingNumber: "12345678",
  userId: "our-identifier",
  zoomAccessToken: zak,
  userType: 2, // optional
});

// Join Meeting
await Zoom.joinMeeting({
  userName: "Joh",
  meetingNumber: "12345678",
});

// Join Meeting with extra params
await Zoom.joinMeeting({
  userName: "Joh",
  meetingNumber: "12345678",
  password: "1234",
  participantID: "our-unique-id",
  zoomAccessToken: "token",
  noAudio: true,
  noVideo: true,
});

// Join Meeting with zoom meeting url
await Zoom.joinMeetingWithWebUrl("<zoom_meeting_url>");

// Register event callback for join meeting status
Zoom.addMeetingStatusEventListener(callback: RNZoomMeetingStatusEventCallback);

// Unregister listener
Zoom.removeMeetingStatusEventListener();

In Meeting Events

import Zoom from "@7chairs/react-native-zoom";

// Get My User Meeting Info
await Zoom.getMyUserMeetingInfo(): Promise<RNZoomMyselfMeetingInfo>

// Register listener to inMeetingEvents
Zoom.addInMeetingEventListener((callback: RNZoomInMeetingEventCallback) => {
  const { event, payload } = callback;
  //...
});
// Unregister listener
Zoom.removeInMeetingEventListener();

events could be: [See iOS/Android SDK for more details]

"meeting.user.video.active";
"meeting.user.video.speaker";
"meeting.user.video.status";
"meeting.user.audio.status";
"meeting.user.joined";
"meeting.user.left";

FAQ

Does library support Expo?

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

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文