Mit der Firebase Dynamic Links Builder API können Sie kurze oder lange Dynamic Links erstellen. Diese API akzeptiert entweder einen langen Dynamic Link oder ein Objekt mit Dynamic Link-Parametern und gibt URLs wie in den folgenden Beispielen zurück:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Vorbereitung
Bevor Sie beginnen, müssen Sie Firebase zu Ihrem iOS-Projekt hinzufügen.
Firebase und das Dynamic Links SDK einrichten
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Dynamic Links-Bibliothek aus.
- Fügen Sie das Flag
-ObjC
dem Abschnitt Other Linker Flags (Weitere Linker-Flags) der Build-Einstellungen Ihres Ziels hinzu. - Für eine optimale Nutzung von Dynamic Links empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und das Firebase SDK für Google Analytics in Ihre App einzubinden. Sie können entweder die Bibliothek ohne IDFA-Erfassung oder mit IDFA-Erfassung auswählen. Häufig gestellte Fragen zur aktuellen Organisation von Modulen im Google Analytics für das Firebase SDK
- Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
Führen Sie nun einige Konfigurationsschritte aus:
- Öffnen Sie in der Firebase Console den Bereich Dynamic Links.
-
Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und kein URI-Präfix für Ihre Dynamic Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.
Wenn Sie bereits ein Dynamic Links-URI-Präfix haben, notieren Sie es sich. Sie müssen sie angeben, wenn Sie Dynamic Links programmatisch erstellen.
- Empfohlen: Geben Sie die in Ihren Deeplinks und Fallback-Links zulässigen URL-Muster an. So verhindern Sie, dass Unbefugte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die Sie nicht kontrollieren. Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.
-
Die App Store-ID und das App-ID-Präfix Ihrer App müssen in den Einstellungen der App angegeben sein. Wenn Sie die Einstellungen Ihrer App aufrufen und bearbeiten möchten, rufen Sie die Einstellungsseite Ihres Firebase-Projekts auf und wählen Sie Ihre iOS-App aus.
Prüfen Sie, ob Ihr Firebase-Projekt richtig konfiguriert ist, damit Dynamic Links in Ihrer iOS-App verwendet werden kann. Öffnen Sie dazu die Datei
apple-app-site-association
, die in Ihrer Dynamic Links-Domain gehostet wird. Firebase stellt die Dateiapple-app-site-association
sowohl über das Stammverzeichnis der Domain als auch über das Unterverzeichnis.well-known
bereit. Beispiel:https://example.com/apple-app-site-association https://example.com/.well-known/apple-app-site-association
Wenn Ihre App verbunden ist, enthält die
apple-app-site-association
-Datei einen Verweis auf das App-ID-Präfix und die Paket-ID Ihrer App. Beispiel:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}
Wenn die Property
details
leer ist, prüfen Sie, ob Sie Ihr App-ID-Präfix angegeben haben. Das App-ID-Präfix ist möglicherweise nicht mit Ihrer Team-ID identisch.
Firebase zu Ihrer Anwendung hinzufügen
- Importieren Sie das
FirebaseCore
-Modul in IhreUIApplicationDelegate
sowie alle anderen Firebase-Module, die von Ihrem App-Delegaten verwendet werden. So verwenden Sie beispielsweise Cloud Firestore und Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurieren Sie eine freigegebene
FirebaseApp
-Instanz in der Methodeapplication(_:didFinishLaunchingWithOptions:)
des App-Delegaten:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Wenn Sie SwiftUI verwenden, müssen Sie ein Anwendungs-Delegate erstellen und es über
UIApplicationDelegateAdaptor
oderNSApplicationDelegateAdaptor
an IhreApp
-Struktur anhängen. Außerdem müssen Sie das Swizzling von App-Delegaten deaktivieren. Weitere Informationen finden Sie in der SwiftUI-Anleitung.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Firebase-Konsole verwenden
Wenn Sie eine einzelne Dynamic Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam ganz einfach einen Link erstellen kann, der z. B. in einem Beitrag in den sozialen Medien verwendet werden kann, ist es am einfachsten, die Firebase-Konsole aufzurufen und eine Dynamic Link manuell über das Schritt-für-Schritt-Formular zu erstellen.
iOS Builder API verwenden
Mit der iOS Builder API können Sie Dynamic Links aus Parametern erstellen oder eine lange Dynamic Link kürzen.
Dynamic Link aus Parametern erstellen
Um eine Dynamic Link zu erstellen, erstellen Sie ein neues DynamicLinkComponents
-Objekt und geben Sie die Dynamic Link-Parameter an, indem Sie die entsprechenden Eigenschaften des Objekts festlegen. Rufen Sie dann den langen Link aus der url
-Property des Objekts oder den kurzen Link durch Aufrufen von shorten()
ab.
Im folgenden Minimalbeispiel wird ein langer Dynamic Link bis https://www.example.com/my-page
erstellt, der unter iOS mit Ihrer iOS-App und unter Android mit der App com.example.android
geöffnet wird:
Swift
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; NSLog(@"The long URL is: %@", linkBuilder.url);
Um ein kurzes Dynamic Link zu erstellen, erstellen Sie ein DynamicLinkComponents
auf dieselbe Weise und rufen Sie dann shorten()
auf.
Zum Erstellen eines Shortlinks ist ein Netzwerkaufruf erforderlich. Daher wird der Link nicht direkt zurückgegeben, sondern shorten()
akzeptiert einen Completion-Handler, der aufgerufen wird, wenn die Anfrage abgeschlossen ist. Beispiel:
Swift
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Standardmäßig werden kurze Dynamic Links mit 17‑stelligen Link-Suffixen generiert, sodass es äußerst unwahrscheinlich ist, dass jemand eine gültige Dynamic Link erraten kann. Wenn es für Ihren Anwendungsfall kein Problem darstellt, dass jemand einen Shortlink errät, können Sie Suffixe generieren, die nur so lang sind, wie für die Eindeutigkeit erforderlich. Dazu legen Sie die dynamicLinkComponentsOptions
-Eigenschaft fest:
Swift
linkBuilder.options = DynamicLinkComponentsOptions() linkBuilder.options.pathLength = .short linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init]; linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort; [linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Dynamic Link Parameter
Mit der Dynamic Link Builder API können Sie Dynamic Links mit einem der unterstützten Parameter erstellen. Weitere Informationen finden Sie in der API-Referenz.
Im folgenden Beispiel wird ein Dynamic Link mit mehreren gängigen Parametern erstellt:
Swift
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.iOSParameters.appStoreID = "123456789" linkBuilder.iOSParameters.minimumAppVersion = "1.2.3" linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") linkBuilder.androidParameters.minimumVersion = 123 linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut", medium: "social", campaign: "example-promo") linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters() linkBuilder.iTunesConnectParameters.providerToken = "123456" linkBuilder.iTunesConnectParameters.campaignToken = "example-promo" linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters() linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link" linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!" linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg" guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.iOSParameters.appStoreID = @"123456789"; linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3"; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; linkBuilder.androidParameters.minimumVersion = 123; linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc] initWithSource:@"orkut" medium:@"social" campaign:@"example-promo"]; linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init]; linkBuilder.iTunesConnectParameters.providerToken = @"123456"; linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo"; linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init]; linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link"; linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!"; linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg"; NSLog(@"The long URL is: %@", linkBuilder.url);
Sie können Dynamic Link-Parameter mit den folgenden Objekten und Attributen festlegen:
DynamicLinkComponents | |
---|---|
Link |
Der Link, den Ihre App öffnet. Geben Sie eine URL an, die von Ihrer App verarbeitet werden kann. Das ist in der Regel der Inhalt oder die Nutzlast der App, die eine app-spezifische Logik auslöst, z. B. das Gutschreiben eines Gutscheins oder das Anzeigen eines Begrüßungsbildschirms. Dieser Link muss eine korrekt formatierte URL sein, die richtig URL-codiert ist, entweder HTTP oder HTTPS verwendet und kein weiterer dynamischer Link sein darf. |
domainURIPrefix | Ihr Dynamic Link-URL-Präfix, das Sie in der Firebase-Konsole finden. Eine Dynamic Link-Domain sieht so aus:
https://example.com/link https://example.page.link |
DynamicLinkAndroidParameters | |
---|---|
fallbackURL | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem Play Store auslösen möchten, wenn die App nicht installiert ist, z. B. die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
minimumVersion | Die versionCode der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zum Play Store weitergeleitet, um die App zu aktualisieren. |
DynamicLinkIOSParameters | |
---|---|
appStoreID | Die App-Store-ID Ihrer App, die verwendet wird, um Nutzer zum App Store weiterzuleiten, wenn die App nicht installiert ist |
fallbackURL | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem App Store ausführen möchten, wenn die App nicht installiert ist, z. B. die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
customScheme | Das benutzerdefinierte URL-Schema Ihrer App, falls es sich von der Bundle-ID Ihrer App unterscheidet |
iPadFallbackURL | Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem App Store auslösen möchten, wenn die App nicht installiert ist, z. B. die Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
iPadBundleID | Die Bundle-ID der iOS-App, die auf iPads zum Öffnen des Links verwendet werden soll. Die App muss über die Übersichtsseite der Firebase-Konsole mit Ihrem Projekt verbunden sein. |
minimumAppVersion | Die Versionsnummer der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Dieses Flag wird an Ihre App übergeben, wenn sie geöffnet wird. Ihre App muss entscheiden, was damit geschehen soll. |
DynamicLinkNavigationInfoParameters | |
---|---|
forcedRedirectEnabled | Wenn der Wert auf „1“ gesetzt ist, wird die App-Vorschauseite beim Öffnen von Dynamic Link übersprungen und stattdessen zur App oder zum Store weitergeleitet. Über die App-Vorschauseite (standardmäßig aktiviert) können Nutzer zuverlässiger zum richtigen Ziel weitergeleitet werden, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch erwarten, dass ein Dynamic Link nur in Apps geöffnet wird, die Dynamic Links zuverlässig ohne diese Seite öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf iOS auf das Verhalten von Dynamic Link aus. |
DynamicLinkSocialMetaTagParameters | |
---|---|
Titel | Der Titel, der verwendet werden soll, wenn Dynamic Link in einem Social-Media-Beitrag geteilt wird. |
descriptionText | Die Beschreibung, die verwendet werden soll, wenn Dynamic Link in einem Social-Media-Beitrag geteilt wird. |
imageURL | Die URL zu einem Bild, das mit diesem Link in Verbindung steht. Das Bild sollte mindestens 300 × 200 Pixel groß und weniger als 300 KB groß sein. |
DynamicLinkGoogleAnalyticsParameters | |
---|---|
source medium campaign term content |
Google Play-Analyseparameter Diese Parameter (utm_source , utm_medium , utm_campaign , utm_term , utm_content ) werden an den Play Store übergeben und an die Link-Nutzlast angehängt.
|
DynamicLinkItunesConnectAnalyticsParameters | |
---|---|
providerToken affiliateToken campaignToken |
iTunes Connect-Analyseparameter. Diese Parameter (pt , at , ct ) werden an den App-Shop übergeben. |
Lange Dynamic Link kürzen
Wenn Sie eine lange Dynamic Link kürzen möchten, übergeben Sie die lange Dynamic Link zusammen mit einem DynamicLinkComponentsOptions
-Objekt an shortenURL(url:options:)
, um einen Link mit einem kurzen Suffix zu generieren:
Swift
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[FIRDynamicLinkComponents shortenURL:longLinkUrl options:nil completion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Benutzerdefiniertes URL-Schema für Dynamic Links angeben
Standardmäßig verwendet Dynamic Links die Bundle-ID Ihrer App als URL-Schema, das zum Öffnen Ihrer Anwendung erforderlich ist. Wir empfehlen, diesen Standardwert beizubehalten, um die Implementierung zu vereinfachen.
Entwickler, die bereits ein benutzerdefiniertes URL-Schema für andere Zwecke verwenden, möchten es möglicherweise auch für ihre Dynamic Links verwenden. In diesem Fall können Sie ein anderes URL-Schema für Ihre Firebase Dynamic Links angeben. Gehen Sie dazu so vor:
- Geben Sie beim Einrichten Ihrer App das Standard-URL-Schema an, das von Ihrer Anwendung verwendet werden soll, bevor Sie Ihre freigegebene
FirebaseApp
-Instanz konfigurieren:Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication .LaunchOptionsKey: Any]?) -> Bool { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme FirebaseApp.configure() return true }
Objective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME; [FIRApp configure]; return YES; }
- Wenn Sie Dynamic Link erstellen, müssen Sie das benutzerdefinierte URL-Schema angeben, das von Ihrer App verwendet wird. Sie können dies über die Firebase-Konsole tun, indem Sie
customScheme
in der Builder API festlegen, den Parameterius
in Ihrer URL angeben oder den ParameteriosCustomScheme
an die REST API senden.
Nächste Schritte
Nachdem Sie Dynamic Links erstellt haben, müssen Sie Ihre App so einrichten, dass sie Dynamic Links empfängt und Nutzer nach dem Öffnen an die richtige Stelle in Ihrer App weiterleitet.
Informationen dazu, wie Sie Dynamic Links in Ihrer App empfangen, finden Sie in der Dokumentation für iOS, Android, C++ und Unity.