Deep Links mit DyLy erstellen

⏱️5 Min
Teilen:

DyLy ist ein Dienst, der URLs verkürzt und das Erstellen von Deep Links vereinfacht. In diesem Artikel erfahren Sie, wie Sie mit DyLy effizient Deep Links erstellen.

Was ist ein Deep Link?

Ein Deep Link sorgt dafür, dass beim Öffnen eines Links nicht der Browser, sondern direkt die App startet. Ist die App nicht installiert, wird der Nutzer in den App Store geleitet und nach der Installation zur gewünschten Seite geführt.

Apple unterstützt mit Universal Links offiziell den „unterbrechungsfreien Wechsel vom Browser zur App“, während Google mit Android App Links ein ähnliches Erlebnis bietet. Wie im Apple-Leitfaden zu Universal Links und in der Android-App-Links-Dokumentation von Google erläutert, verbessern Deep Links nicht nur die User Experience, sondern tragen auch zu höherer Sicherheit und besseren Conversion Rates bei.

Anwendungsfälle

Deep Links lassen sich auf vielfältige Weise nutzen.

Direkte Links zu Inhalten wie Videos

Sie können Links in sozialen Netzwerken teilen und Nutzer direkt zu bestimmten Inhalten führen. Im Web ist das selbstverständlich, aber mit Deep Links lassen sich Inhalte auch in mobilen Apps unmittelbar öffnen. Außerdem können Sie dem Link Query-Parameter hinzufügen, um beispielsweise den Zugriffsweg auszuwerten.

Einladungslinks

Deep Links eignen sich, um jemanden in eine Gruppe oder einen ähnlichen Bereich innerhalb einer App einzuladen. Klickt der Eingeladene auf den Link, öffnet sich die App und der Einladungsprozess beginnt. Ist die App nicht installiert, wird der Nutzer in den App Store geführt; nach der Installation lässt sich der Prozess fortsetzen.

Redirects

Wenn Sie eine App als Ziel für OAuth- oder ähnliche Redirects verwenden möchten, können Sie auf benutzerdefinierte Schemata (z. B. myapp://) setzen, was jedoch das Risiko birgt, dass Informationen abgefangen werden. Nutzen Sie stattdessen Deep Links, um Redirects sicher in der App entgegenzunehmen.

Umsetzung

Im Folgenden sehen wir uns an, wie Deep Links konkret umgesetzt werden. Es gibt viele Dienste, die Deep Links generieren, hier verwenden wir DyLy.

Metadaten erstellen

Die Domain muss mit der Anwendung verknüpft werden. Die Details finden Sie in der Apple-Dokumentation und der Google-Dokumentation. Kurz gesagt: Sie hosten im Web einen Endpunkt, der den Domainbesitz und die Zuordnung zur App nachweist, damit Apple und Google die Verknüpfung prüfen können.

Sie müssen lediglich JSON in einem festgelegten Format zurückgeben. Sie können es selbst z. B. über S3 bereitstellen, doch DyLy stellt dafür eine komfortable Funktion zur Verfügung.

Mit DyLy lässt sich ein sogenannter JSON Link erzeugen, der am Ziel die definierte JSON-Antwort ausliefert. Über die API senden Sie dazu die folgende Anfrage.

bash
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \
2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "type": "json",
6 "projectId": "your-project-id",
7 "path": ".well-known/apple-app-site-association",
8 "rawJson": {
9 "applinks": {
10 "apps": [],
11 "details": [
12 {
13 "appIDs": ["TEAM123.com.example.app"],
14 "paths": [
15 "NOT /_/*",
16 "NOT /deferred-params",
17 "/*"
18 ]
19 }
20 ]
21 }
22 }
23 }'

Einstellungen in der App

Als Nächstes konfigurieren Sie die App gemäß den Vorgaben des jeweiligen Betriebssystems.

iOS

Fügen Sie in Xcode unter Signing & Capabilities den Abschnitt Associated Domains hinzu und registrieren Sie Ihre Domain, etwa applinks:example.com.

Android

Ergänzen Sie AndroidManifest.xml um <intent-filter android:autoVerify="true"> und validieren Sie die Domain über android:autoVerify.

Wird der Link über den Browser aufgerufen, können Sie ihn in den Einstellungen auf eine beliebige URL weiterleiten lassen.

Link erstellen

Zum Schluss erzeugen Sie den Link in DyLy. Wenn Sie type auf deep setzen, entsteht wie unten gezeigt ein Deep Link.

bash
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \
2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "type": "deep",
6 "projectId": "your-project-id",
7 "path": "groups/awesome-group",
8 "destinationUrl": "https://apps.apple.com/app/yourapp/id123456",
9 "jwtClaims": {
10 "invitationId": "inv-789xyz",
11 "invitedBy": "user-123",
12 "groupId": "awesome-group",
13 "groupName": "Awesome Group",
14 "permissions": "member",
15 "timestamp": 1735894404
16 },
17 "jwtExpiresIn": 300,
18 "expiresIn": 2592000,
19 "keyProtected": false,
20 "oneTime": false
21 }'

Die Werte in jwtClaims werden in den JWT übernommen, daher sollten Sie sie sorgfältig behandeln.

Nachdem der Deep Link erstellt wurde, generiert DyLy einen Link mit einem JWT als Query-Parameter.

Verarbeitung des Links in der Anwendung

Nachdem ein Nutzer auf den Link geklickt hat, erhält die Anwendung ihn. Gehen Sie anschließend wie folgt vor.

JWT überprüfen

Stellen Sie sicher, dass der Link tatsächlich von DyLy ausgestellt wurde.

Zuvor ein kurzer Blick auf JWT. Ein JWT ist vereinfacht gesagt JSON mit einer Signatur. Über die Signaturprüfung stellen Sie den Aussteller fest und können sicherstellen, dass der Inhalt unverändert ist.

Da grundsätzlich jeder Links erstellen kann, müssen Sie nicht legitime Links erkennen. Legitime Links werden mit dem privaten Schlüssel von DyLy signiert, und Ihre App kann über die Signaturprüfung bestätigen, dass der Link echt ist und die Parameter nicht manipuliert wurden.

DyLy setzt auf das verbreitete JWT-Verfahren, sodass Sie vorhandene JWT-Bibliotheken zur Signaturprüfung verwenden können.

Die Anwendung sollte daher zunächst den JWT prüfen, sobald der Link eingeht.

Parameter prüfen

Nach der Signaturprüfung lesen Sie die Nutzdaten aus und führen die gewünschten Aktionen aus.

Bei Einladungslinks entnehmen Sie beispielsweise die Gruppen-ID oder ähnliche Kennungen.

Beachten Sie, dass ein JWT zwar signiert, aber nicht verschlüsselt ist (es gibt auch verschlüsselte JWTs, das ist jedoch ein anderes Format).

Das bedeutet, dass jeder den Inhalt eines JWT lesen kann. Speichern Sie daher keine sensiblen Informationen wie personenbezogene Daten im JWT. Im Fall eines Einladungslinks genügt es, Kennungen wie die Gruppen-ID zu hinterlegen und detaillierte Informationen serverseitig vorzuhalten.

Deferred Deep Link

Wenn ein Nutzer den Link auf einem Gerät ohne installierte App anklickt, wird er in den App Store weitergeleitet und kann nach der Installation die gewünschte Seite öffnen. Das wird als Deferred Deep Link bezeichnet. DyLy unterstützt auch diesen Mechanismus.

Zunächst tippt der Nutzer auf einem mobilen Gerät ohne App auf den Link. Da die App fehlt, wird der Link im Browser ausgeführt und erreicht den DyLy-Server. DyLy speichert Daten wie die IP-Adresse und das Betriebssystem des Geräts und leitet den Nutzer anschließend in den App Store weiter.

Startet die App nach der Installation zum ersten Mal, fragt sie bei DyLy nach, ob dieses Gerät den Link bereits zuvor aufgerufen hat. Anhand von IP-Adresse und Betriebssystem prüft DyLy, ob ein Zugriff vor der Installation stattgefunden hat, und liefert in diesem Fall den entsprechenden Deep Link an die Anwendung zurück.

Auf diese Weise kann die App beim ersten Start nach der Installation die zuvor angeklickten Deep-Link-Informationen abrufen.

Weitere Details finden Sie in der offiziellen DyLy-Dokumentation.

Fazit

Mit DyLy lassen sich Deep Links unkompliziert umsetzen. Im nächsten Beitrag betrachten wir konkrete Szenarien wie den Aufbau von Einladungslinks.

Referenzen

Teilen:

Verwandte Artikel

Android Anwendung CI/CD mit Flutter
Guides

Android Anwendung CI/CD mit Flutter

Erfahren Sie, wie Sie CI/CD-Pipelines für Android-Apps mit Flutter erstellen. Basierend auf GitHub Actions, ohne fastlane.

mark241
So lokalisieren Sie die App in Flutter
Guides

So lokalisieren Sie die App in Flutter

Erfahren Sie, wie Sie Ihre Flutter-App mit arb-Dateien lokalisieren. Dieser Artikel basiert auf Flutter 2.0.1.

mark241