Install node.js
Install and update Xcode (you will need a Mac)
Install and update Android Studio
$ npm install enx-rtc-react-native --save
$ react-native link enx-rtc-react-native
Note: Please make sure to have CocoaPods on your computer.
If you've installed this package before, you may need to edit your Podfile
and project structure because the installation process has changed.
In your terminal, change into the ios
directory of your React Native project.
Create a pod file by running: pod init
.
Add the following to your pod file:
target '<YourProjectName>' do
# Pods for <YourProject>
pod 'EnxRTCiOS'
pod 'Socket.IO-Client-Swift', '~> 15.0.0'
end
In case if you want Autolinking then don't do step 3. Add following in podfile: ... pod 'enx-rtc-react-native', :path => '../node_modules/enx-rtc-react-native/ios/RNEnxRtc.podspec' ...
Now run, pod install
After installing the EnxRTCiOS SDK, change into your root directory of your project.
Now run, react-native link enx-rtc-react-native
.
Open <YourProjectName>.xcworkspace
contents in XCode. This file can be found in the ios
folder of your React Native project.
Click File
and New File
Add an empty swift file to your project:
EnxInstall.swift
. This is done to set some flags in XCode so the Swift code can be used.Click Create Bridging Header
when you're prompted with the following modal: Would you like to configure an Objective-C bridging header?
Ensure you have enabled both camera and microphone usage by adding the following entries to your Info.plist
file:
<key>NSCameraUsageDescription</key>
<string>Your message to user when the camera is accessed for the first time</string>
<key>NSMicrophoneUsageDescription</key>
<string>Your message to user when the microphone is accessed for the first time</string>
If you try to archive the app and it fails, please do the following:
android/app/src/main/java/[...]/MainActivity.java
import com.rnenxrtc.EnxRtcPackage;
to the imports at the top of the filenew EnxRtcPackage()
to the list returned by the getPackages()
methodandroid/settings.gradle
:
include ':enx-rtc-react-native'
project(':enx-rtc-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/enx-rtc-react-native/android')
android/app/build.gradle
:
compile project(':enx-rtc-react-native')
Add following permisions in Android Manifest file:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
import Enx from 'enx-rtc-react-native';
// TODO: What to do with the module?
Enx;
Check ExtraNotes file in case of any issue.
Try a quick Video Call: https://try.enablex.io/
Sign up for a free trial https://portal.enablex.io/cpaas/trial-sign-up/