Native deep linking SDKs for every mobile stack
Ship deep linking on iOS, Android, Flutter, React Native, Unity, and Capacitor — all with the same API shape, the same dashboard, and the same account.
One deep linking API, every stack you ship on
Mobile teams rarely ship on a single platform anymore. A typical product has an iOS app, an Android app, a web fallback, maybe a hybrid Capacitor wrapper for the internal admin, and a Unity build for a marketing mini-game. Historically that meant stitching together three or four deep linking vendors and praying the attribution reconciled. ChottuLink collapses that entire stack into one SDK family with a shared API shape, a single dashboard, and a single billing account.
Every SDK ships as native code — no JavaScript bridge tax, no performance penalty, no runtime surprises. The callback shape is consistent across platforms so your routing logic can be factored into shared code. And because the backend is the same for every SDK, install attribution reconciles automatically across iOS, Android, Flutter, RN, Unity, and Capacitor installs of the same product.
Same callback shape on every platform
// Swift (iOS)
let config = CLConfiguration(apiKey: "your-api-key")
ChottuLink.initialize(config: config)
// Handle resolved deep link
func chottuLink(didResolveDeepLink link: URL, metadata: [String : Any]?) {
router.navigate(to: link.absoluteString)
}
Platform-specific notes
SceneDelegate, pass the incoming
userActivity to ChottuLink.continue(userActivity:) in
scene(_:continue:). SwiftUI apps can use the .onOpenURL modifier alongside the SDK
with no extra wiring.
android:autoVerify="true" to the intent filter in your manifest -- this is required for Android
App Links to bypass the disambiguation dialog. The Kotlin and Java APIs are identical.
onLink stream fires for both deferred and direct deep links so you
handle both in one place. Null safety is supported from Flutter 3.0.ChottuLink.unitypackage and import via Assets → Import Package → Custom
Package. During import, enable the mainTemplate.gradle checkbox. If you already have
a mainTemplate.gradle, manually add the three required dependencies (gson,
okhttp3, installreferrer) to its dependencies block.
ChottuLinkPlugin to your AppDelegate. On Android, register it in
MainActivity. No native code changes beyond the standard Capacitor plugin registration.
Use cases per stack
See how teams on each platform put ChottuLink to work.
Flutter: One Dart handler for iOS & Android
- Single
onLinkstream handles both deferred and direct deep links - No separate Swift or Kotlin handlers needed
- Write the routing logic once, run it on every platform
React Native: JS-native deep linking
- Generate and resolve share links entirely from JavaScript
- Deferred callback fires in the same navigation thread
- Smooth handoff from link click to in-app screen
Unity: Session & invite linking in C#
- Embed invite or share links anywhere in your game UI
- C# callback fires on first launch after install
- Route new users directly into the right session or screen
Capacitor: Deep linking without touching native code
- TypeScript plugin handles links entirely in web layer
- Zero native code changes beyond standard plugin registration
- Works for both consumer apps and internal hybrid tools