linkhopp 1.0.0
linkhopp: ^1.0.0 copied to clipboard
Deep Linking SDK for Flutter. Deferred Deep Links, Kampagnen-Tracking, Sub-50ms Redirects.
LinkHopp Flutter SDK #
Deep Linking, Deferred Deep Linking und Kampagnen-Tracking für Flutter.
Installation #
dependencies:
linkhopp: ^0.1.0
Quick Start (5 Minuten) #
1. Initialisieren #
import 'package:linkhopp/linkhopp.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await LinkHopp.init(apiKey: 'YOUR_API_KEY');
runApp(MyApp());
}
2. Deferred Deep Link prüfen #
Wenn ein User über einen LinkHopp-Link die App installiert, kann der ursprüngliche Link nach der Installation zugestellt werden:
@override
void initState() {
super.initState();
_checkDeferredLink();
}
Future<void> _checkDeferredLink() async {
final link = await LinkHopp.checkDeferredLink();
if (link != null) {
// User kommt von Marketing-Link → navigiere zur richtigen Seite
Navigator.pushNamed(context, link.path);
// Metadaten auslesen
print('Kampagne: ${link.campaign}');
print('Source: ${link.utmSource}');
print('Metadata: ${link.metadata}');
}
}
3. Live Deep Links empfangen #
Wenn die App bereits installiert ist und über einen Universal/App Link geöffnet wird:
@override
void initState() {
super.initState();
// Initial Link (App wurde über Link gestartet)
LinkHopp.getInitialLink().then((link) {
if (link != null) handleLink(link);
});
// Stream (App ist im Hintergrund, Link kommt rein)
LinkHopp.handleLink((link) {
handleLink(link);
});
}
void handleLink(LinkHoppLink link) {
Navigator.pushNamed(context, link.path);
}
iOS Setup #
Füge Associated Domains zu deiner iOS-App hinzu:
- Xcode → Target → Signing & Capabilities → + Associated Domains
- Hinzufügen:
applinks:linkhopp.com
Android Setup #
Füge Intent Filter zu AndroidManifest.xml hinzu:
<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="linkhopp.com" />
</intent-filter>
API #
| Methode | Beschreibung |
|---|---|
LinkHopp.init(apiKey:) |
SDK initialisieren |
LinkHopp.checkDeferredLink() |
Deferred Deep Link prüfen (einmalig nach Install) |
LinkHopp.handleLink(callback) |
Live Deep Links empfangen |
LinkHopp.getInitialLink() |
Initialen Link bei App-Start prüfen |
LinkHoppLink #
| Property | Typ | Beschreibung |
|---|---|---|
destinationUrl |
String |
Ziel-URL / Deep Link |
path |
String |
Extrahierter Pfad |
metadata |
Map |
Frei definierbare Key-Values |
campaign |
String? |
Kampagnen-Name |
utmSource |
String? |
UTM Source |
utmMedium |
String? |
UTM Medium |
utmCampaign |
String? |
UTM Campaign |
matchMethod |
String? |
referrer, clipboard, fingerprint, direct |