react-native-radar
package on npm here.
The SDK currently supports React Native 0.60.0
and higher.
ios/
directory. In the Podfile
, update platform :ios
to 10.0
or higher. Then, run pod install
. Learn about autolinking.
Before writing any JavaScript, you must integrate the Radar SDK with your iOS and Android apps as described in the iOS SDK documentation and Android SDK documentation.
Info.plist
. For foreground permissions, you must add a value for NSLocationWhenInUseUsageDescription
(Privacy - Location When In Use Usage Description). For background permissions, you must add a value for NSLocationAlwaysAndWhenInUseUsageDescription
(Privacy - Location Always and When In Use Usage Description). These strings are displayed in permissions prompts.
build.gradle
file (use version 21.0.1 or higher).
29
or higher, Radar also requires the ACCESS_BACKGROUND_LOCATION
permission. You must add the ACCESS_BACKGROUND_LOCATION
permission to your manifest manually:
react-native-radar
to plugins
in app.json
and specify one or more of the plugin options below:
Test Publishable
key for testing and non-production environments. Use your Live Publishable
key for production environments.
userId
is a stable unique ID for the user.
To set an optional dictionary of custom metadata for the user, call:
metadata
is a JSON object with up to 16 keys and values of type string, boolean, or number.
Finally, to set an optional description for the user, displayed in the dashboard, call:
description
is a string.
You only need to call these functions once, as these settings will be persisted across app sessions.
Learn about platform-specific implementations of these functions in the iOS SDK documentation and Android SDK documentation.
status
will be a string, one of:
GRANTED_BACKGROUND
GRANTED_FOREGROUND
NOT_DETERMINED
DENIED
background
is a boolean indicating whether to request background location permissions or foreground location permissions.
On iOS and Android, the user needs to grant foreground location permissions first before you can prompt for background location permissions:
err
will be a string, one of:
ERROR_PUBLISHABLE_KEY
: SDK not initializedERROR_PERMISSIONS
: location permissions not grantedERROR_LOCATION
: location services error or timeout (10 seconds)ERROR_NETWORK
: network error or timeout (10 seconds)ERROR_BAD_REQUEST
: bad request (missing or invalid params)ERROR_UNAUTHORIZED
: unauthorized (invalid API key)ERROR_PAYMENT_REQUIRED
: payment required (organization disabled or usage exceeded)ERROR_FORBIDDEN
: forbidden (insufficient permissions or no beta access)ERROR_NOT_FOUND
: not foundERROR_RATE_LIMIT
: too many requests (rate limit exceeded)ERROR_SERVER
: internal server errorERROR_UNKNOWN
: unknown errorEFFICIENT
: A low frequency of location updates and lowest battery usage. On Android, avoids Android vitals bad behavior thresholds.RESPONSIVE
: A medium frequency of location updates and low battery usage. Suitable for most consumer use cases.CONTINUOUS
: A high frequency of location updates and higher battery usage. Suitable for on-demand use cases (e.g., delivery tracking) and some consumer use cases (e.g., order ahead, “mall mode”).componentDidMount
) if you want them to work when the app is in the background.
You can also remove event listeners:
launchOptions
for the UIApplicationLaunchOptionsLocationKey
to conditionally parse and load the JavaScript bundle. Learn more about this key here.
On Android, a receiver in the React Native module loads and parses the JavaScript bundle when the app is launched in the background. If you do not want to receive events in JavaScript and you want to disable this, add an override to your manifest:
setNotificationOptions
to set the icon and the background color of the foreground service and event notifications: