You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Calin-Teodor 821cc11364 sdk(react-native-sdk/android): replaced activityContext with currentActivity 1 year ago
..
android sdk(react-native-sdk/android): replaced activityContext with currentActivity 1 year ago
.npmignore feat(rnsdk) add npm ignore file 2 years ago
.npmrc sdk(react-native-sdk): moved some dependencies to peer dependencies (#13498) 2 years ago
README.md sdk(react-native-sdk): rnsdk screenshare android fix (#13884) 1 year ago
index.tsx feat(rnsdk): add audio and video muted state changed 1 year ago
jitsi-meet-rnsdk.podspec fix(rnsdk) copying sounds on iOS 2 years ago
package-lock.json chore(deps): bump @babel/traverse in /react-native-sdk 2 years ago
package.json sdk(react-native-sdk): update readme 2 years ago
prepare_sdk.js sdk(react-native-sdk): rnsdk screenshare android fix (#13884) 1 year ago
sdk_instructions.js sdk(react-native-sdk): added script that updates app dependencies (#13516) 2 years ago
update_dependencies.js sdk(react-native-sdk): update script for rnsdk dependencies (#14069) 1 year ago

README.md

Jitsi Meet React Native SDK

Installation

Inside your project, run;

npm i @jitsi/react-native-sdk



Additionally, if not already installed, some dependencies will need to be added.

This can be done by running the following script:

node node_modules/@jitsi/react-native-sdk/update_dependencies.js

This will check and update all your dependencies.

Because of SVG use in react native, you need to update metro.config your project’s file:

const { getDefaultConfig } = require('metro-config');

module.exports = (async () => {
  const {
    resolver: {
      sourceExts,
      assetExts
    }
  } = await getDefaultConfig();

  return {
    transformer: {
      babelTransformerPath: require.resolve('react-native-svg-transformer'),
      getTransformOptions: async () => ({
        transform: {
          experimentalImportSupport: false,
          inlineRequires: true,
        },
      }),
    },
    resolver: {
      assetExts: assetExts.filter(ext => ext !== 'svg'),
      sourceExts: [...sourceExts, 'svg']
    }
  }
})();

iOS

Project Info.plist

  • Add a Privacy - Camera Usage Description
  • Add a Privacy - Microphone Usage Description

General

  • Signing & capabilites:
    • Add Background modes
      • Audio
      • Voice over IP
      • Background fetch

Run;

cd ios && pod install && cd ..

Android

  • In your build.gradle have at least minSdkVersion = 24
  • In android/app/src/debug/AndroidManifest.xml and android/app/src/main/AndroidManifest.xml, under the </application> tag, include xml <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" />
  • In android/app/src/main/AndroidManifest.xml, under the </application> tag, include xml <service android:name="org.jitsi.meet.sdk.JitsiMeetOngoingConferenceService" android:foregroundServiceType="mediaProjection" /> This will take care of the screen share feature.

If you want to test all the steps before applying them to your app, you can check our React Native SDK sample app here: https://github.com/jitsi/jitsi-meet-sdk-samples/tree/master/react-native

Using JWT tokens

  • If you are planning to use tokens or another domain you can do that by updating the following props, as shown below.
  • For example: javascript <JitsiMeeting room={'ThisIsNotATestRoomName'} serverURL={'https://meet.jit.si/'} token={'dkhalhfajhflahlfaahalhfahfsl'} />

For more details on how you can use React Native SDK with React Native app, you can follow this link: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-react-native-sdk