Quickstart
Four steps from zero to links that open the right screen; plan on an afternoon. Create a project and copy your publishable key from the dashboard first.
1. Add the package
lander_flutter is not on pub.dev yet. Use the Git URL shown on the SDK setup page of your dashboard.
dependencies:
lander_flutter:
git:
url: <Git URL from your dashboard>
path: sdk/lander_flutter2. Set up your app links
In the dashboard, add your iOS Team ID and bundle ID, and your Android package name with the SHA-256 fingerprints of every signing key. Lander serves the apple-app-site-association and assetlinks.json files for your domain.
# iOS: Runner target, Associated Domains capability
applinks:acme.golander.link
# iOS Info.plist: let Lander deliver links, not Flutter
<key>FlutterDeepLinkingEnabled</key><false/>
# Android: AndroidManifest.xml, inside your main activity
<meta-data android:name="flutter_deeplinking_enabled" android:value="false" />
<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="acme.golander.link" />
</intent-filter>3. Initialize before runApp
import 'package:lander_flutter/lander_flutter.dart';
Future<void> main() async {
await Lander.initialize(apiKey: 'pk_live_...');
runApp(const MyApp());
}4. Route every link
Lander.onDeepLink.listen((link) {
router.go(link.route, extra: link);
});Deferred deep linking works on Android out of the box for Play Store installs. On iOS it needs one of the opt in flows: the Continue in app page (set through the API today) or a sign in handoff. Every link tells you how sure Lander is.
Start free