lander_flutter 0.2.0
lander_flutter: ^0.2.0 copied to clipboard
Deep linking without the fuss: receive, resolve and create Lander links, and report opens and conversions from Flutter apps.
0.2.0 #
Deferred deep linking.
- Deferred links from
POST /v1/sdk/initarrive throughgetInitialLinkandonDeepLinkas before, now withisDeferred,confidence(deterministic,probabilisticorunattributed) and the newLanderLink.method(install_referrer,probabilistic_match,landing_page,authenticated_handoff,universal_link,app_link). Still delivered exactly once, and a link that opened the app wins over a deferred one. - Android: installs from a Lander link land on that link's screen. The redirector now puts a single use
lander_tokenin the Play Store referrer, which the SDK already sends on first launch (deterministic,install_referrer). Lander.claimHandoff(userId): after sign in, returns the link your backend bound to that user withPOST /v1/handoffs(deterministic,authenticated_handoff), or null. Returned only, never emitted ononDeepLink. Retries reuse oneIdempotency-Key, so a lost response does not lose the link.- Custom scheme URLs that carry a short link in
lander_link(the iOS "Continue in app" page's open button) are resolved like the link itself;uristays the scheme URL, and if resolving fails the scheme URL's path still routes. sdkVersionreported as0.2.0.
0.1.0 #
First release: the installed app path.
Lander.initialize: random install ID (UUID v4, stored outside backups),POST /v1/sdk/initon every launch withisFirstLaunch, Play Install Referrer on Android first launch. Never throws on network errors; a failed first launch report is retried on the next launch with the same idempotency key, and aninstall_id_conflictgets a fresh install ID.Lander.onDeepLinkandLander.getInitialLink: Universal Links, App Links and custom scheme URLs on cold and warm start, resolved throughPOST /v1/sdk/resolve. Links are buffered until the app listens, the launch link is delivered exactly once, and unknown links (404) or network failures still deliver the raw URL.Lander.createLink: short links from inside the app viaPOST /v1/sdk/links.Lander.trackEvent: persistent offline queue, batches of up to 100, exponential backoff with jitter andRetry-After, deduplication by client generated event ID, flush on app background, held until the install is registered. OptionallinkIdfor attribution.- Request timeouts (10 s) and an
Idempotency-Keyon every write, reused across retries. - Android (Kotlin): launch intent and
onNewIntentdelivery, Recents replay ignored, Play Install Referrer. - iOS (Swift): app delegate and
UIScenebased apps,NSUserActivityUniversal Links and URL opens, privacy manifest. - Example app: Acme Shop with go_router.