@rrnara/opentok-react-native
v0.20.4
Published
React Native components for OpenTok iOS and Android SDKs
Downloads
1
Maintainers
Readme
opentok-react-native
Please note that this library is not officially supported by Vonage.
React Native library for OpenTok iOS and Android SDKs
In this repo, you'll find the OpenTok React Native library:
Pre-Requisites:
- React Native iOS installation instructions
- Install and update Android Studio
- React Native Android installation instructions
Installation:
In your terminal, change into your React Native project's directory
Add the library using
npm
oryarn
.
npm install opentok-react-native
yarn add opentok-react-native
iOS Installation
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 you terminal, change into the
ios
directory of your React Native project.Create a pod file by running:
pod init
.
For React Native < 0.60, add this to your Podfile:
target '<YourProjectName>' do
# Pods for <YourProject>
pod 'OpenTok', '2.20.0'
end
Now run,
pod install
After installing the OpenTok iOS SDK, change into your root directory of your project.
For React Native < 0.60, now run react-native link opentok-react-native
.
Open
<YourProjectName>.xcworkspace
contents in XCode. This file can be found in theios
folder of your React Native project.Click
File
andNew File
Add an empty swift file to your project:
- You can name this file anything i.e:
OTInstall.swift
. This is done to set some flags in XCode so the Swift code can be used.
- You can name this file anything i.e:
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:
- Go to Target
- Click on Build Phases
- Under the Link Binary With Libraries section, remove the libOpenTokReactNative.a and add it again
Android Installation
In your terminal, change into your project directory.
If you have already run
react-native link opentok-react-native
for the iOS installation, please skip this step.- Run
react-native link opentok-react-native
- Run
Open your Android project in Android Studio.
Add the following to your project
build.gradle
file:
maven {
url "http://tokbox.bintray.com/maven"
}
- Add the following to the
AndroidManifest.xml
file (needed for Screen Sharing to work):
<service
android:name="com.opentokreactnative.OTForegroundService"
android:foregroundServiceType="mediaProjection"
android:enabled="true"
android:exported="false" />
Sync Gradle
Make sure the following in your app's gradle
compileSdkVersion
,buildToolsVersion
,minSdkVersion
, andtargetSdkVersion
are greater than or equal to versions specified in the OpenTok React Native library.As for the older Android devices, ensure you add camera and audio permissions to your
AndroidManifest.xml
file:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />
Newer versions of Android–API Level 23
(Android 6.0)–have a different permissions model that is already handled by this library.
Bintray sunset
Bintray support has ended (official announcement: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). In your app build.gradle file you need to remove reference to jcenter
and replace it with mavenCentral
. Example:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
...
repositories {
google()
mavenCentral()
}
...
}
allprojects {
repositories {
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
mavenCentral {
// We don't want to fetch react-native from Maven Central as there are
// older versions over there.
content {
excludeGroup "com.facebook.react"
}
}
google()
maven { url 'https://www.jitpack.io' }
}
}
Samples
To see this library in action, check out the opentok-react-native-samples repo.
Development and Contributing
Interested in contributing? We :heart: pull requests! See the Contribution guidelines.
Getting Help
We love to hear from you so if you have questions, comments or find a bug in the project, let us know! You can either:
- Open an issue on this repository
- See https://support.tokbox.com/ for support options
- Tweet at us! We're @VonageDev on Twitter
- Or join the Vonage Developer Community Slack