Monitor React Native app end-user interactions with Instana
npm install @instana/react-native-agent---
``plain`
npm install --save @instana/react-native-agent
Android will require you to take 2 extra steps in order to support automatic tracking of network requests.
#### Supported React Native versions
- Instana React Native 2.0.11
- Instana Android Plugin 6.2.5
- Android Gradle Plugin 7.2.2 or later
- Gradle 7.3.3 or later
For React Native 0.63.3 or earlier, please use:
- Instana React Native 1.7.0
- Instana Android Plugin 1.6.1
- Android Gradle Plugin 3.4.2
- Gradle 5.5
#### Steps
Add the Instana Android agent plugin to your dependencies via android/build.gradle:
`groovy`
buildscript {
dependencies {
classpath "com.instana:android-agent-plugin:$INSTANA_ANDROID_PLUGIN_VERSION"
}
}
Apply the Instana Android agent plugin via android/app/build.gradle file (at the top):
`groovy`
apply plugin: 'com.android.application'
apply plugin: 'com.instana.android-agent-plugin'
Your project needs to contain at least one Swift file (it can be empty). If you don't have any, please open your Xcode Project in and add an empty Swift file. Please also let Xcode create the Bridging Header for you.
Please refer to our React Native API documentation.
We recommend adding http://localhost:8081 to the ignored URLs list to prevent the Agent from tracing communication with the Metro bundler:
`javascript`
Instana.setIgnoreURLsByRegex(["http:\/\/localhost:8081.*"]);
If your app uses fetch to complete network requests, you might find your app crashing on runtime whenever fetch is used after linking Instana React Native Agent : No virtual method toString(Z)Ljava/lang/String;
If you encounter this issue before the upstream issue is solved, please apply the following workaround. Add the following to your Android module-level gradle file (usually app/gradle.build):
`groovy``
dependencies {
implementation "com.squareup.okhttp3:okhttp:4.3.1"
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.3.1"
}