SDKsReact Native
React Native SDK
Integrate WarpLink deep linking into your React Native app.
Requirements: React Native 0.71+, React 18+, iOS 15+ and/or Android API 26+. This SDK requires native modules and does not work with Expo Go — use a development build.
Installation
npm install @warplink/react-native
cd ios && pod installnpx expo install @warplink/react-native
npx expo prebuildPlatform Setup
The React Native SDK bridges to native iOS and Android SDKs. Both platforms need configuration.
iOS
- Open Xcode, select your app target > Signing & Capabilities
- Add Associated Domains >
applinks:aplnk.to - Enable Associated Domains in your App ID at developer.apple.com
For Expo, add to app.json:
{
"expo": {
"ios": {
"associatedDomains": ["applinks:aplnk.to"]
}
}
}Android
Add the intent filter to your main Activity in android/app/src/main/AndroidManifest.xml:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="aplnk.to" />
</intent-filter>For Expo, add to app.json:
{
"expo": {
"android": {
"intentFilters": [{
"action": "VIEW",
"autoVerify": true,
"data": [{ "scheme": "https", "host": "aplnk.to" }],
"category": ["BROWSABLE", "DEFAULT"]
}]
}
}
}Configure the SDK
Call configure() once at app startup, outside of any React component:
import { WarpLink } from '@warplink/react-native';
WarpLink.configure({
apiKey: 'wl_live_abcdefghijklmnopqrstuvwxyz012345',
debugLogging: true, // Enable native console logging
matchWindowHours: 48, // Attribution window (default: 72)
});configure() is synchronous. It validates the key format locally and delegates async server validation to the native SDK.
Quick Deep Link Setup
import { useEffect } from 'react';
import { WarpLink } from '@warplink/react-native';
function App() {
useEffect(() => {
// Warm-start deep links
const unsubscribe = WarpLink.onDeepLink((event) => {
if (event.deepLink) {
navigateTo(event.deepLink.destination);
}
});
// Cold-start deep link
WarpLink.getInitialDeepLink().then((link) => {
if (link) navigateTo(link.destination);
});
return unsubscribe;
}, []);
return <>{/* Your app */}</>;
}Next Steps
- Deep Links — Cold start, warm start, and React Navigation
- Deferred Deep Links — Preserve context through installs
- Attribution — Platform-specific matching and privacy
- API Reference — Full TypeScript API documentation