An open API service indexing awesome lists of open source software.

https://github.com/fullstorydev/fullstory-react-native

Official FullStory support for React-Native, for native mobile
https://github.com/fullstorydev/fullstory-react-native

Last synced: about 1 year ago
JSON representation

Official FullStory support for React-Native, for native mobile

Awesome Lists containing this project

README

          

# FullStory React Native Plugin

[![CircleCI](https://circleci.com/gh/fullstorydev/fullstory-react-native.svg?style=svg)](https://circleci.com/gh/fullstorydev/fullstory-react-native)

FullStory's React Native plugin exposes access to the FullStory Native Mobile SDK from within a React Native app. This plug-in is intended to be used in conjunction with [FullStory for Mobile Apps](https://www.fullstory.com/mobile-apps/).

## Quick Links

- [FullStory API](https://developer.fullstory.com)
- [Getting Started Guide](https://help.fullstory.com/hc/en-us/articles/360052419133)
- [Email us](mailto:mobile-support@fullstory.com)

## Install the React Native plugin

#### with npm

```
npm i @fullstory/react-native --save
```

#### with yarn

```
yarn add @fullstory/react-native
```

#### with expo-cli

```
expo install @fullstory/react-native
```

## Configuring the babel plugin

`@fullstory/babel-plugin-react-native` is automatically included as a dependency to the FullStory React Native plugin. Please refer to the babel plugin's [README.md](https://github.com/fullstorydev/fullstory-babel-plugin-react-native/blob/master/README.md) for information on how to configure it.

`@fullstory/babel-plugin-annotate-react` is automatically included as a dependency to the FullStory React Native plugin. Please refer to the babel plugin's [README.md](https://github.com/fullstorydev/fullstory-babel-plugin-annotate-react/blob/master/README.md) for information on how to configure it for React Native.

## Importing the React Native plugin

In order to use the FullStory Native Mobile SDK from within a React Native app, importing the React Native plugin is all that is required.

### Importing Example

Here's an example of importing the SDK in a React Native app.

```JSX
import FullStory from '@fullstory/react-native';
```

## Configuring for Expo

> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).

Add the config plugin to the plugins array of your `app.json` or `app.config.json`

```json
{
"expo": {
"plugins": [
[
"@fullstory/react-native",
{
"version": "1.28.0",
"org": "ABC",
"additionalConfigs": {
"ios": {
"PreviewMode": true
},
"android": {
"previewModeEnabled": false
}
}
}
]
]
}
}
```

### Plugin Props

Plugins allow for extra customization by passing in an object with properties. If no extra properties are added, defaults will be used. **Certain properties are required.**

| Property | Platform | Required | Description |
| ----------------- | ------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| version | Android & iOS | ✅ | FullStory for Mobile Apps plugin version. |
| org | Android & iOS | ✅ | Your assigned organization ID. |
| host | Android & iOS | Optional. Defaults to: `fullstory.com` | The server url your sessions are sent to. |
| recordOnStart | Android & iOS | Optional. Defaults to: `true` | Setting RecordOnStart to `false` will prevent data capture until you explicitly invoke `FS.restart()` API. |
| additionalConfigs | Android & iOS | Optional. Defaults to: `nil` | Pass additional configurations to [Android](https://help.fullstory.com/hc/en-us/articles/360040596093-Getting-Started-with-Android-Data-Capture#01F5E7XFMG19SNYS77NYETKDMQ) or [iOS](https://help.fullstory.com/hc/en-us/articles/360042772333-Getting-Started-with-iOS-Data-Capture#01FX61TBJ8FAD9CWBMY31DWSTH). |
| enabledVariants | Android | Optional. Defaults to: `release` | Specifies which variants to apply FullStory instrumentation. |
| logLevel | Android | Optional. Defaults to: `info` | Captures any log statements at or above the specified level. |
| logcatLevel | Android | Optional. Defaults to: `off` | Captures any Logcat messages at or above the specified level. |
| includeAssets | iOS | Optional. Defaults to: `nil` | Specify webview file types to upload for playback. This is strongly recommended if you intend to capture WebViews. |