Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Erstellen Sie dynamische Links auf iOS

Mit der Firebase Dynamic Links Builder API können Sie kurze oder lange dynamische Links erstellen. Diese API akzeptiert entweder einen langen Dynamic Link oder ein Objekt mit Dynamic Link-Parametern und gibt URLs wie die folgenden Beispiele zurück:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, Firebase zu Ihrem iOS - Projekt hinzuzufügen .

  1. In Firebase zu Ihrem iOS - Projekt .
  2. Fügen Sie die folgende pod in Ihrem Podfile :
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
        
  3. Run pod install Sie die erstellte und öffnen .xcworkspace Datei.
  4. In der Konsole Firebase öffnet Abschnitt des dynamischen Links.
  5. Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und ein URI-Präfix für Ihre Dynamic Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.

    Wenn Sie bereits über ein Dynamic Links URI-Präfix verfügen, notieren Sie es. Sie müssen es angeben, wenn Sie dynamische Links programmgesteuert erstellen.

  6. Empfehlung: die URL - Muster in Ihren Deep - Links und Ausweich Links erlaubt angeben. Auf diese Weise verhindern Sie, dass Unbefugte dynamische Links erstellen, die von Ihrer Domain auf Websites umleiten, die Sie nicht kontrollieren. Siehe spezifische URL - Muster zulassen .
  7. Stellen Sie sicher, dass die App Store-ID Ihrer App und Ihr App-ID-Präfix in den Einstellungen Ihrer App angegeben sind. Anzeigen und Bearbeiten von Einstellungen der App, gehen Sie zu Ihrem Firebase Projekt Seite Einstellungen und wählen Sie Ihren iOS - App.

    Bestätigen Sie, dass Ihr Projekt Firebase richtig in Ihrem iOS - App dynamische Links konfiguriert ist , durch Öffnen der zu verwenden , apple-app-site-association - Datei , die auf Ihrer dynamischen Link Domain gehostet wird. Firebase wird die dienen apple-app-site-association Datei aus dem Stamm der Domäne sowie das .well-known Unterverzeichnis. Zum Beispiel:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    Wenn Ihre App verbunden sind, die apple-app-site-association enthält Datei einen Verweis auf Ihren App App - ID - Präfix und Bundle - ID. Zum Beispiel:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    Wenn die details Eigenschaft leer ist , überprüfen Sie, dass Sie Ihre App - ID - Präfix angegeben. Beachten Sie, dass Ihr App-ID-Präfix möglicherweise nicht mit Ihrer Team-ID übereinstimmt.

Firebase zu Ihrer App hinzufügen

  1. Importieren Sie die Firebase Modul in Ihrem UIApplicationDelegate :

    Schnell

    import Firebase

    Ziel c

    @import Firebase;
  2. Konfigurieren ein FirebaseApp gemeinsame Instanz, in der Regel in Ihrem App - application:didFinishLaunchingWithOptions: Methode:

    Schnell

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Ziel c

    // Use Firebase library to configure APIs
    [FIRApp configure];

Verwenden der Firebase-Konsole

Wenn Sie einen einzelnen Dynamic Link, entweder für Testzwecke erstellt werden sollen, oder für Ihr Marketing - Team einfach einen Link zu erstellen, in so etwas wie eine Social - Media - Post verwendet werden kann, wäre der einfachste Weg , um die besuchen Firebase Konsole und erstellen eine manuell das Schritt-für-Schritt-Formular befolgen.

Verwenden Sie die iOS Builder-API

Sie können die iOS Builder-API verwenden, um dynamische Links aus Parametern zu erstellen oder einen langen dynamischen Link zu kürzen.

Um einen Dynamic Link zu erstellen, erstellen Sie ein neues DynamicLinkComponents Objekt und die Dynamic Link Parameter angeben , indem Sie das Objekts entsprechende Eigenschaften einstellen. Dann erhält die lange Verbindung von dem Objekt url Eigenschaft oder die kurze Verbindung erhalten , indem Aufruf shorten() .

Das folgende minimale Beispiel erzeugt einen langen Dynamic Link zu https://www.example.com/my-page , die mit Ihrem iOS - App auf iOS und der App öffnet com.example.android auf Android:

Schnell

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)")

Ziel 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 eine kurze Dynamic Link zu erstellen, bauen eine DynamicLinkComponents die gleiche Art und Weise, und rufen Sie dann shorten() .

Der Aufbau eine kurze Verbindung ein Netzanruf erfordert, so anstatt direkt den Link Rückkehr shorten() akzeptiert einen Abschluss Handler, der , wenn die Anforderung abgeschlossen genannt wird. Zum Beispiel:

Schnell

linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Ziel 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 dynamische Links mit 17-stelligen Link-Suffixen generiert, die es äußerst unwahrscheinlich machen, dass jemand einen gültigen dynamischen Link erraten kann. Wenn für Ihren Anwendungsfall, gibt es keinen Schaden in jemand erfolgreich eine kurze Verbindung zu erraten, können Sie es vorziehen , Suffixe zu erzeugen , die nur so lange wie nötig sind , einzigartig zu sein, die Sie , indem Sie das tun können dynamicLinkComponentsOptions Eigenschaft:

Schnell

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)")
}

Ziel 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);
}];
      

Sie können die Dynamic Link Builder API verwenden, um Dynamic Links mit jedem der unterstützten Parameter zu erstellen. Sehen Sie sich die API - Referenz für weitere Einzelheiten.

Im folgenden Beispiel wird ein dynamischer Link mit mehreren allgemeinen Parametersätzen erstellt:

Schnell

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)")

Ziel 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 Eigenschaften festlegen:

DynamicLinkKomponenten
Verknüpfung

Der Link, den Ihre App öffnet. Geben Sie eine URL an, die Ihre App verarbeiten kann, normalerweise den Inhalt oder die Nutzlast der App, die eine App-spezifische Logik initiiert (z. Dieser Link muss eine gut formatierte URL sein, ordnungsgemäß URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer dynamischer Link sein.

domainURIPrefix Ihr dynamisches Link-URL-Präfix, das Sie in der Firebase-Konsole finden. Eine Dynamic Link Domain sieht aus wie die folgenden Beispiele:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameter
FallbackURL Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem Play Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen.
Mindestversion Die versionCode der Mindestversion der App, die den Link öffnen. Wenn es sich bei der installierten App um eine ältere Version handelt, wird der Benutzer zum Play Store weitergeleitet, um die App zu aktualisieren.
DynamicLinkIOSParameter
appStoreID Die App Store-ID Ihrer App, die verwendet wird, um Benutzer an den App Store zu senden, wenn die App nicht installiert ist
FallbackURL Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem App Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen.
benutzerdefiniertes Schema Das benutzerdefinierte URL-Schema Ihrer App, wenn es anders als die Bundle-ID Ihrer App definiert ist
iPadFallbackURL Der Link zum Öffnen auf iPads, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem App Store zu installieren, wenn die App nicht installiert ist, z. B. die Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen.
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 der App, die den Link öffnen. Dieses Flag wird beim Öffnen an Ihre App übergeben, und Ihre App muss entscheiden, was damit geschehen soll.
DynamicLinkNavigationInfoParameter
ForcedRedirectEnabled Wenn auf '1' gesetzt, überspringen Sie die App-Vorschauseite, wenn der Dynamic Link geöffnet wird, und leiten Sie stattdessen zur App oder zum Store um. Die App-Vorschauseite (standardmäßig aktiviert) kann Benutzer zuverlässiger an das am besten geeignete Ziel weiterleiten, wenn sie dynamische Links in Apps öffnen. Wenn Sie jedoch erwarten, dass ein Dynamic Link nur in Apps geöffnet wird, die Dynamic Links ohne diese Seite zuverlässig öffnen können, können Sie ihn mit diesem Parameter deaktivieren. Dieser Parameter beeinflusst das Verhalten des Dynamic Link nur unter iOS.
DynamicLinkSocialMetaTagParameter
Titel Der zu verwendende Titel, wenn der dynamische Link in einem sozialen Beitrag geteilt wird.
BeschreibungText Die zu verwendende Beschreibung, wenn der dynamische Link in einem sozialen Beitrag geteilt wird.
Bild URL Die URL zu einem Bild, das sich auf diesen Link bezieht. Das Bild sollte mindestens 300 x 200 Pixel und weniger als 300 KB groß sein.
DynamicLinkGoogleAnalyticsParameter
Quelle
Mittel
Kampagne
Begriff
Inhalt
Analyseparameter von Google Play. Diese Parameter ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) werden an der Play Store übergeben sowie an die Verbindungsnutzlast angehängt.
DynamicLinkItunesConnectAnalyticsParameter
AnbieterToken
AffiliateToken
KampagnenToken
iTunes Connect-Analyseparameter. Diese Parameter ( pt , at , ct ) mit den App - Speichern übergeben.

Zu verkürzen , einen langen Dynamic Link, vorbei an den langen Dynamic Link zu shortenURL(url:options:) zusammen mit einem DynamicLinkComponentsOptions widersprechen, wenn Sie einen Link mit einem kurzen Suffix generieren mögen:

Schnell

DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Ziel 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);
}];

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 Ihre Implementierung einfach zu halten.

Entwickler, die bereits ein benutzerdefiniertes URL-Schema für andere Zwecke verwenden, möchten dieses benutzerdefinierte URL-Schema möglicherweise auch für ihre dynamischen Links verwenden. In dieser Situation können Sie ein anderes URL-Schema für Ihre Firebase Dynamic Links angeben, indem Sie die folgenden Schritte ausführen:

  1. Wenn Ihre App einrichten, stellen Sie sicher , dass Sie das Standard - URL - Schema festlegen , die von Ihrer Anwendung verwendet werden , bevor Sie die Konfiguration FirebaseApp gemeinsame Instanz:

    Schnell

    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
    }
    

    Ziel c

    - (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;
    }
  2. Wenn Sie einen dynamischen Link erstellen, müssen Sie das benutzerdefinierte URL-Schema angeben, das Ihre App verwendet. Sie können dies durch die Firebase Konsole tun, die Einstellung customScheme in der Builder - API, die Angabe ius Parameter in der URL oder das Senden iosCustomScheme Parameter an die REST - API

Nächste Schritte

Nachdem Sie dynamische Links erstellt haben, müssen Sie Ihre App so einrichten, dass sie dynamische Links empfängt und Benutzer an die richtige Stelle in Ihrer App sendet, nachdem ein Benutzer sie geöffnet hat.

Dynamische Verbindungen in Ihrer Anwendung finden Sie in der Dokumentation erhalten iOS , Android , C ++ und Unity .