Gettings started
For push notification support, we provide anexpo-config plugin that automatically configures the necessary settings for seamless integration with the Userpilot SDK.
You can fetch the latest version from here.
Prerequisites
- Ensure the Userpilot React Native Module is installed in your app and the SDK is initialized:
- It is recommended to have configured your Android and iOS push settings in Userpilot Settings page.
- Refer to Android Guide and iOS Guide to get needed files and settings.
- Copy your Firebase configuration file into your project and set the path to the file in your
app.jsonfile, in theandroid.googleServicesFile(doc) property:
Usage
- Install the Userpilot expo config plugin
- Add
@userpilot/expo-configto the plugin list in yourapp.jsonfile, and register the same value as your app’sscheme:
userpilot- followed by your Userpilot app token, lowercased. That is the scheme the SDK builds its push notification deep links with, so any other value means notification taps never reach your app. The top-level scheme registers the URL type on iOS; during prebuild, the plugin adds the matching Android intent filter with android:host="sdk" automatically. Userpilot validates this host for preview and push-notification URLs; no separate host option is needed in the plugin configuration.
- Capture deep links, which is also how push notification taps arrive:
- Test locally with a new development or EAS build:
SDK callbacks
To handle deep link triggers from push notifications, you can listen to SDK events as shown below.For more information, refer to the Userpilot React Native SDK.
Android Handling
No extra Android code is required, and you do not needexpo-notifications.
The Userpilot SDK receives the push message through its own Firebase messaging service, posts the notification, and attaches a userpilot-APP_TOKEN://sdk/notification deep link to it. Tapping the notification opens your app through the intent filter the Expo plugin adds, so the tap arrives in the same didHandleURL handler shown above. The SDK also requests the POST_NOTIFICATIONS permission itself; pass disableRequestPushNotificationsPermission: true to Userpilot.setup if you would rather request it yourself.
Because Android delivers an FCM message to only one messaging service, Userpilot’s service must be the one that receives it. If your app installs another push library that registers its own FirebaseMessagingService — such as expo-notifications, OneSignal, or a custom service — that library may consume Userpilot messages and the notification will not appear.
On iOS no configuration is needed: thanks to swizzling, the Userpilot iOS SDK handles notifications automatically.
No iOS configuration needed, thanks for Swizzling in iOS, Userpilot’s iOS SDK handles notifications automatically.