NOTE: These sdk and samples only for the Agora Video 4.x APIs. For examples using previous releases please see the following branches:
This SDK takes advantage of React Native and Agora RTC Video SDK on Android && iOS.
The community developer Syanbo developed 1.0 version React Native SDK based on the Agora Native SDK from 2016 to 2017. As the community's demand for React Native SDK keeps growing, Agora has achieved official cooperation with Syanbo, this project now is officially maintained by Agora. Thanks to Syanbo for his long-term contributions to React Native SDK.
Install react-native-agora
(^4.0.0):
yarn add react-native-agora
or
npm i --save react-native-agora
Go to your ios folder and run:
pod install
import { createAgoraRtcEngine } from 'react-native-agora';
const engine = createAgoraRtcEngine();
engine.initialize({ appId: 'YOUR APP ID' });
or
const createAgoraRtcEngine = require('react-native-agora');
const engine = createAgoraRtcEngine();
engine.initialize({ appId: 'YOUR APP ID' });
We suggest you use TypeScript to develop, or use TypeScript eslint to lint your code.
The error log:
[!] The 'xxx' target has libraries with conflicting names: libcrypto.a.
You should disable Flipper, you can found it in the Podfile, and comment the code about Flipper in AppDelegate.
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
add_flipper_pods!
post_install do |installer|
flipper_post_install(installer)
end
The error log:
Swift class extensions and categories on Swift classes are not allowed to have +load methods
Fixed in React Native 0.59.3.
Source: facebook/react-native#24139
The error log:
Exception '*** -[__NSArrayM objectAtIndexedSubscript:]: index 1 beyond bounds [0 .. 0]' was thrown while invoking getCurrentAppState on target AppState with params (
2,
3
)
Fixed in React Native 0.59.9.
Source: facebook/react-native#25154
If you are not using screen sharing feature in your app, you should exclude Screen Sharing extension as below:
// build.gradle (project-level)
signingConfigs{
....
}
configurations.configureEach {
exclude group: "io.agora.rtc", module: "full-screen-sharing"
}
compileOptions{
...
}
- Complete API Doc at the Developer Center
- Changelog
- Release Notes
- File bugs about this sample
- React Native Getting Started
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT