Leitfaden für Deeplinking unter iOS
Dieser Leitfaden unterstützt Sie bei der Auswahl der geeigneten Deeplinking-Strategie für Ihre iOS-App. Ihre Wahl hängt davon ab, welchen Messaging-Kanal Sie verwenden und ob Sie einen Drittanbieter für Links wie Branch nutzen.
Details zur Implementierung finden Sie unter Deeplinking. Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Deeplinking.
Linktyp auswählen
Es gibt drei Möglichkeiten, Links aus Braze-Nachrichten in Ihrer iOS-App zu verarbeiten. Jede funktioniert anders und eignet sich für unterschiedliche Kanäle und Anwendungsfälle.
| Linktyp | Beispiel | Am besten geeignet für | Öffnet sich ohne installierte App? |
|---|---|---|---|
| Angepasstes Schema | myapp://products/123 |
Push, In-App-Nachrichten, Content Cards und Banner | Nein – Link schlägt fehl |
| Universal Link | https://myapp.com/products/123 |
E-Mail, SMS, Kanäle mit Klick-Tracking | Ja – Fallback auf Web |
| Web-URL in App öffnen | Beliebige https://-URL |
Anzeige von Webinhalten in einer modalen WebView | Nicht zutreffend – Anzeige in WebView |
Deeplinks mit angepasstem Schema
Deeplinks mit angepasstem Schema (zum Beispiel myapp://products/123) öffnen Ihre App direkt auf einem bestimmten Bildschirm. Sie sind die einfachste Option für Kanäle, in denen Links nicht von Dritten verändert werden.
Verwenden Sie Deeplinks mit angepasstem Schema, wenn:
- Sie Push-Benachrichtigungen, In-App-Nachrichten, Content Cards oder Banner versenden
- der Link nicht funktionieren muss, wenn die App nicht installiert ist
- Sie kein Klick-Tracking benötigen (Link-Wrapping durch E-Mail-Anbieter)
Verwenden Sie keine Deeplinks mit angepasstem Schema, wenn:
- Sie E-Mails versenden – E-Mail-Anbieter umschließen Links für das Klick-Tracking, wodurch angepasste Schemata nicht mehr funktionieren
- der Link auf eine Webseite zurückfallen soll, wenn die App nicht installiert ist
Universal Links
Universal Links (zum Beispiel https://myapp.com/products/123) sind Standard-HTTPS-URLs, die iOS an Ihre App weiterleiten kann, anstatt sie in einem Browser zu öffnen. Sie erfordern eine serverseitige Konfiguration (eine AASA-Datei) und eine Einrichtung in der App (Associated Domains Entitlement).
Verwenden Sie Universal Links, wenn:
- Sie E-Mails versenden. Ihr E-Mail-Anbieter umschließt Links für das Klick-Tracking, daher müssen Links HTTPS verwenden.
- Sie SMS oder andere Kanäle nutzen, in denen Links umschlossen oder gekürzt werden.
- der Link auf eine Webseite zurückfallen soll, wenn die App nicht installiert ist.
- Sie einen externen Linking-Anbieter wie Branch oder AppsFlyer verwenden.
Verwenden Sie keine Universal Links, wenn:
- Sie Deeplinks nur aus Push-Benachrichtigungen, In-App-Nachrichten, Bannern oder Content Cards benötigen. Angepasste Schemata sind einfacher.
„Web-URL in App öffnen“
Diese Option öffnet eine Webseite in einer modalen WebView innerhalb Ihrer App. Sie wird vollständig vom Braze SDK über Braze.WebViewController verarbeitet – Sie müssen keinen Code zur URL-Verarbeitung schreiben.
Verwenden Sie „Web-URL in App öffnen“, wenn:
- Sie eine Webseite (etwa eine Aktion oder einen Artikel) anzeigen möchten, ohne Ihre App zu verlassen.
- die URL eine Standard-HTTPS-Webseite ist und kein Deeplink zu einem bestimmten App-Bildschirm.
Verwenden Sie „Web-URL in App öffnen“ nicht, wenn:
- Sie zu einer bestimmten Ansicht in Ihrer App navigieren müssen. Verwenden Sie stattdessen ein angepasstes Schema oder einen Universal Link.
- die Webseite eine Authentifizierung erfordert oder Content-Security-Policy-Header enthält, die das Einbetten blockieren.
Was Sie für jeden Linktyp benötigen
Deeplinks mit angepasstem Schema
| Anforderung | Details |
|---|---|
| AASA-Datei | Nicht erforderlich |
Info.plist |
Registrieren Sie Ihr Schema unter CFBundleURLTypes und fügen Sie es zu LSApplicationQueriesSchemes hinzu |
| App-Delegate-Methode | Implementieren Sie application(_:open:options:) oder scene(_:openURLContexts:), wenn Ihre App Szenen verwendet, um Links mit angepasstem Schema zu verarbeiten. Dazu gehören auch Links mit angepasstem Schema, die aus Braze-Nachrichten geöffnet werden |
| Konfiguration des Braze SDK | Keine. Das SDK öffnet URLs mit angepasstem Schema standardmäßig, sofern braze(_:shouldOpenURL:) nicht false zurückgibt |
Universal Links
| Anforderung | Details |
|---|---|
| AASA-Datei | Erforderlich – hosten Sie sie unter https://yourdomain.com/.well-known/apple-app-site-association |
| Associated Domains | Fügen Sie applinks:yourdomain.com in Xcode unter Signing & Capabilities hinzu |
| App-Delegate-Methode | Implementieren Sie application(_:continue:restorationHandler:), um NSUserActivity zu verarbeiten |
| Konfiguration des Braze SDK | Setzen Sie configuration.forwardUniversalLinks = true |
| BrazeDelegate (optional) | Implementieren Sie braze(_:shouldOpenURL:) für angepasstes Routing (zum Beispiel mit Branch) |

Wenn Sie E-Mails über Braze versenden, verpackt Ihr ESP (SendGrid, SparkPost oder Amazon SES) Links in einer Klick-Tracking-Domain. Sie müssen die AASA-Datei daher auch auf Ihrer Klick-Tracking-Domain hosten, nicht nur auf Ihrer primären Domain. Die vollständige Einrichtung finden Sie unter Universal Links und App Links. Wenn jeder E-Mail-Link die App öffnet, lesen Sie Jeder E-Mail-Link öffnet die App.
„Open Web URL Inside App“
| Anforderung | Details |
|---|---|
| AASA-Datei | Nicht erforderlich |
| App-Delegate-Methode | Nicht erforderlich – das SDK übernimmt dies automatisch |
| Konfiguration des Braze SDK | Keine – wählen Sie im Campaign-Composer Open Web URL Inside App aus |
Wann Sie eine AASA-Datei benötigen
Eine Apple App Site Association (AASA)-Datei ist nur erforderlich, wenn Sie universelle Links verwenden. Sie teilt iOS mit, welche URLs Ihre App verarbeiten kann.
Sie benötigen eine AASA-Datei, wenn:
- Sie Deeplinks in E-Mail-Kampagnen versenden (da ESPs Links in HTTPS-Klick-Tracking-URLs einbinden).
- Sie Deeplinks in SMS-Kampagnen versenden (da Links möglicherweise zu HTTPS-URLs gekürzt werden).
- Sie Branch, AppsFlyer oder einen anderen Linking-Anbieter verwenden (da diese ihre eigenen HTTPS-Domains nutzen).
- Sie universelle Links aus Push-Benachrichtigungen, In-App-Nachrichten oder Content Cards verwenden (weniger verbreitet, aber möglich mit
forwardUniversalLinks = true).
Sie benötigen keine AASA-Datei, wenn:
- Sie ausschließlich Deeplinks mit angepasstem Schema (zum Beispiel
myapp://) aus Push-Benachrichtigungen, In-App-Nachrichten, Content Cards oder Bannern verwenden. - Sie die Option Web-URL in der App öffnen nutzen.
Anweisungen zur AASA-Einrichtung finden Sie unter Universelle Links und App-Links.
Wann Sie App-Code zur Verarbeitung von Links benötigen
Welche Delegate-Methode Sie implementieren, hängt von der Art des verwendeten Links ab und davon, ob Sie eine angepasste Routing-Logik benötigen:
| Delegate-Methode | Verarbeitet | Wann implementieren |
|---|---|---|
BrazeDelegate.braze(_:shouldOpenURL:) |
Alle vom Braze SDK geöffneten URLs | Sie benötigen eine angepasste Routing-Logik (z. B. Branch, bedingte Verarbeitung, Analytics) für Braze-Nachrichten |
application(_:open:options:) oder scene(_:openURLContexts:) |
Deeplinks mit angepasstem Schema (myapp://) |
Sie verwenden Deeplinks mit angepasstem Schema aus einem beliebigen Kanal, einschließlich Braze-Nachrichten |
application(_:continue:restorationHandler:) |
Universelle Links (https://) |
Sie verwenden universelle Links aus E-Mail, SMS oder mit forwardUniversalLinks = true |
BrazeDelegate.shouldOpenURL im Vergleich zu den application-Methoden zum Öffnen von URLs
Bei Push-Benachrichtigungen, In-App-Nachrichten, Content Cards und Bannern ruft das Braze SDK BrazeDelegate.braze(_:shouldOpenURL:) auf, bevor es die URL öffnet. Der URL-Kontext enthält den Quellkanal. Verwenden Sie diese Methode, um:
- Die URL an einen Drittanbieter (z. B. Branch oder AppsFlyer) weiterzuleiten, bevor Braze sie öffnet
- Analytics zu protokollieren
falsezurückzugeben, damit Braze die URL nicht öffnet
Wenn Sie shouldOpenURL nicht implementieren, gibt das SDK standardmäßig true zurück, und Braze öffnet die URL. Links mit angepasstem Schema werden über das System geöffnet, das die Methode scene(_:openURLContexts:) oder application(_:open:options:) Ihrer App aufruft. Web-Links werden je nach Nachrichteneinstellungen in einer WebView oder im Browser geöffnet.
Wenn Sie shouldOpenURL implementieren und false zurückgeben, verarbeiten Sie die URL in dieser Methode. Braze öffnet sie nicht und leitet die URL auch nicht an die Delegate-Methoden Ihrer Application oder Scene weiter.
Wenn Braze einen Link mit angepasstem Schema öffnet, ruft iOS application(_:open:options:) auf bzw. scene(_:openURLContexts:), wenn Ihre App Scenes verwendet. Wenn forwardUniversalLinks = true gesetzt ist, übergibt Braze universelle Links direkt an scene(_:continue:) oder application(_:continue:restorationHandler:). Sind beide implementiert, ruft Braze nur die Scene-Delegate-Methode auf.
Verwendung von Branch mit Braze
Wenn Sie Branch als Ihren Linking-Anbieter verwenden, sind für Ihre Einrichtung einige zusätzliche Schritte erforderlich, die über die Standardkonfiguration für universelle Links hinausgehen:
- Branch SDK: Integrieren Sie das Branch SDK gemäß der Dokumentation von Branch.
- Zugehörige Domains: Fügen Sie Ihre Branch-Domain (z. B.
applinks:yourapp.app.link) in Xcode unter Signing & Capabilities hinzu. - BrazeDelegate: Implementieren Sie
braze(_:shouldOpenURL:), um Branch-Links an das Branch SDK weiterzuleiten. Geben Siefalsezurück, damit Braze die URL nach der Weiterleitung nicht öffnet. - Universelle Links weiterleiten: Setzen Sie
configuration.forwardUniversalLinks = truein Ihrer Braze-SDK-Konfiguration.
Implementierungsdetails und Anleitungen zur Fehlerbehebung finden Sie unter Branch für Deeplinking.