Expo is an open-source framework for apps that run natively on Android, iOS, and the web.
This project cannot be used with an Expo Go app because it requires custom native code. Follow the steps in the article on how to make your own development build or prebuild your native projects.
This plugin will automatically configure your native code when it's generated (e.g. with npx expo prebuild
) so that it can be used with react-native-daily-js.
Ensure you use versions that work together!
expo |
@daily-co/react-native-webrtc |
@config-plugins/react-native-webrtc |
@daily-co/react-native-daily-js |
@daily-co/config-plugin-rn-daily-js |
---|---|---|---|---|
50.x | 118.0.3-daily.1 | 8.0.0 | 0.59.0 | 0.0.5 |
49.x | 111.0.0-daily.2 | 7.0.0 | 0.49.0 | 0.0.3 |
48.x | 111.0.0-daily.1 | 6.0.0 | 0.43.0 | 0.0.2 |
47.x | 1.94.1-daily.8 | 5.0.0 | 0.36.0 | 0.0.1 |
Tested against Expo SDK 47 This package cannot be used in the "Expo Go" app because it requires custom native code.
Install the react-native-daily-js
dependencies as mentioned here.
npm i @daily-co/react-native-daily-js @react-native-async-storage/async-storage@^1.15.7 react-native-background-timer@^2.3.1 expo-random@^13.6.0 react-native-get-random-values@^1.10.0
npm i --save-exact @daily-co/react-native-webrtc@118.0.3-daily.1
npm i @config-plugins/react-native-webrtc @daily-co/config-plugin-rn-daily-js
After installing these packages, add the config plugin to the plugins
array of your app.json
or app.config.js
.
- For iOS you also need to add the
voip
background permission.
{
"expo": {
"ios": {
"infoPlist": {
"UIBackgroundModes": [
"voip"
]
}
},
"plugins": [
"@config-plugins/react-native-webrtc",
"@daily-co/config-plugin-rn-daily-js",
[
"expo-build-properties",
{
"android": {
"minSdkVersion": 24
},
"ios": {
"deploymentTarget": "13.0"
}
}
]
]
}
}
After installing all the dependencies, rebuild your app as described in the "Adding custom native code" guide.
The @config-plugins/react-native-webrtc
provides props for extra customization, for instance, to define the camera and microphone permissions prompt messages.
See the plugin API to learn more.