Flutter
Connect ZipQuantum’s verified HTTPS links to a Flutter router without a ZipQuantum-specific SDK.
Current ZipQuantum Integration Model
ZipQuantum requires no proprietary Flutter SDK. A Flutter app receives standard iOS Universal Links and Android App Links after the native app–domain association is complete.
Prerequisites
- The iOS guide passes with the exact production host, Team ID, and bundle identifier.
- The Android guide passes with the exact host, application ID, and production signing fingerprint.
- The Smart Link contains the required fallback URL, Android package, and iOS Store URL.
- The Flutter app has a defined route map for the supported Smart Link paths.
Configure Flutter Routing
- Use Flutter’s Router API or a compatible router such as
go_router. - Define a route for every path that ZipQuantum is allowed to send to the app.
- Validate path parameters and query parameters before using them.
- Provide a safe in-app fallback for unknown or incomplete routes.
- Test both a cold start and a link received while the application is already running.
final router = GoRouter(
routes: [
GoRoute(
path: '/product/:id',
builder: (context, state) {
final id = state.pathParameters['id'];
return ProductScreen(productId: id!);
},
),
],
);Native Project Requirements
- Configure Associated Domains in the iOS Runner target.
- Configure the verified App Link intent filter in
android/app/src/main/AndroidManifest.xml. - Do not configure a third-party link plugin and Flutter’s default deep-link handler at the same time. Choose one URL-handling mechanism.
Test With ZipQuantum
- Create a Smart Link whose destination path matches a Flutter route.
- Install a production-like build.
- Tap the HTTPS Smart Link from another app.
- Confirm that the correct Flutter screen opens on iOS and Android.
- Uninstall the app and verify the configured store or web fallback.
Deferred Recovery
Flutter routing handles installed-app URLs. For fresh installs, integrate Play Install Referrer on Android and the signed, user-initiated handoff on iOS, then submit the opaque token to ZipQuantum’s public recovery endpoint. No privileged API secret belongs in the mobile binary.
Troubleshooting
- The app opens but shows the home screen: verify the Flutter route parser and the exact incoming path.
- Only one platform works: retest the native association before changing Dart routing.
- Duplicate navigation occurs: ensure only one deep-link handler is active.
- Unknown parameters cause errors: validate and ignore unsupported values instead of trusting the URL.