Getting Started with React Native SDK
Prerequisites
React Native is a JavaScript library for building apps on multiple platforms like Android and iOS, by maintaining a single code base.
Castled React Native SDK enables your React Native App to receive push, in-app and inbox notifications originating from the Castled Customer Engagement Platform. It is implemented as a Turbo Native Module with backward compatability. Turbo Native Modules are the next iteration on React Native Modules for apps based on the New Architecture.
If your react app is on legacy architecture, you will still be able to use the Castled SDK as Turbo Native Modules are backward compatible.
Installation
To use the SDK, add the library to your project
Native Setup
Step 1. Update build.gradle
Include google-services
plugin dependency in top-level gradle file
Apply google-services
plugin to app gradle file
Step 2. Required permissions
By default AndroidManifest.xml
of the SDK includes the following permission requests. No developer action is required here.
Initialization
Next step is to initialize the SDK. Initialization is typically done in App.js
.
app-id
is a unique key associated with your Castled account. It can be found in the Castled dashboard at Settings > Api Keys.location
is the region where you have your Castled account.
You can refer to the SDK Configs section for the list of configs available during initialization.
User Identification
To identify the user associated with an app instance, use the following method. This is typically invoked immediately after user completes the
sign-in flow of your app. user-id
is the id that you use internally within your organisation to identify a user.
It is recommended to pass an optional user-token as the second parameter
to setUserId
to mitigate any risk of user impersonation. In the absence of a
user-token, no additional verifications will be done to enforce user
authenticity. If your user-id is random id such as a UUID, user-token
is probably not required. More info on user-token can be found in the next
section.
Secure User Identification
user-token
is a unique token per user generated by your app server. This token is usually issued by the app server as a part of user login flow.
user-token
is a Base64 encoded Hash-based Message Authentication Code (HMAC). Ensure the hash computation happens in your app server so that api-key
is not exposed. You can create an api-key
in the Setting > API Keys page within your Castled account. Contact Castled support for help with integration.
Find sample server code snippets to generate HMAC for the user-id
.
User Logout
To remove the user association with a particular app instance. Typically invoked as part of the user sign-out flow within the app. Once invoked, app won’t be able to receive any notifications sent from Castled until the user sign-in to the app again.
SDK Configs
This section covers the basic configurations available in the CastledConfigs
class of the SDK.
Use these configs if you want to enable specific messsaging channel or want to override default behavior.
Config Name | Description | Default Value |
---|---|---|
enablePush | Enables push notification feature | false |
enablePushBoost | Enhances push notification delivery rates on Android devices with the advanced push boost feature | false |
enableInApp | Enables In App notification feature | false |
enableAppInbox | Enables App Inbox notification feature | false |
enableTracking | Enables tracking of User attributes or App events | false |
enableSessionTracking | Enables tracking of User Sessions | true |
location | Preferred server location | US |
skipUrlHandling | Disables the click action handling by the SDK. Set when app handles the notification action itself | false |
Push boost feature has to be included in your account plan for
enablePushBoost
to work as expected. For any inquiries or further
assistance, please contact our support team.