Background
Get set up with the Helium SDK for React Native. Reach out over your Helium slack channel or email founders@tryhelium.com for any questions.Installation
Install the SDK using your preferred package manager:Configuration
Follow these steps to integrate the SDK.Initialization
Initialize Helium by callinginitialize() early in your app’s lifecycle, typically in your root component.
If you are using RevenueCat, follow the example in the next section.
Use RevenueCat with Helium
Custom Purchase Config
To use your own purchase logic, pass in a custom purchase config toinitialize:
Custom User ID and Custom User Traits
You can pass in a custom user ID and custom user traits if desired toinitialize:
Presenting Paywalls
You must have a trigger and workflow configured in the dashboard in order to show a paywall.
presentUpsell method to present a paywall. presentUpsell takes in PresentUpsellParams:
PaywallEventHandlers
You can pass in paywall event handlers to listen for specific paywall events. (See the next section Helium Events for a way to handle global events).Helium Events
Listen for all Helium Events by implementingonHeliumPaywallEvent and passing it to initialize:
Checking Subscription Status & Entitlements
Use these methods to check current user subscription status.Example Usage
Fallbacks
There are currently two ways you can handle a “fallback” situation in the rare case that a paywall fails to download or an invalid trigger is provided. You can also do both. Better to be prepared!1. Use the onFallback function
You can pass this in when you call presentUpsell and handle however you want.
2. Provide a fallback bundle (recommended)
Provide a fallback bundle as described in this guide.Loading Budgets
If a paywall has not completed downloading when you attempt to present it, a loading state can show. By default, Helium will show this loading state as needed (a shimmer view for up to 7 seconds). You can configure, turn off, or set trigger-specific loading budgets. If the budget expires before the paywall is ready, a fallback paywall will show if available otherwise the loading state will hide andonFallback will be called.