Twórz dynamiczne linki na iOS

Za pomocą interfejsu Firebase Dynamic Links Builder API możesz tworzyć krótkie lub długie linki dynamiczne. Ten interfejs API akceptuje albo długi link dynamiczny, albo obiekt zawierający parametry linku dynamicznego, i zwraca adresy URL, takie jak w poniższych przykładach:

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

Warunki wstępne

Zanim zaczniesz, dodaj Firebase do swojego projektu iOS .

Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.

  1. W Xcode przy otwartym projekcie aplikacji przejdź do pozycji Plik > Dodaj pakiety .
  2. Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę Dynamic Links.
  5. Aby zapewnić optymalne działanie Linków dynamicznych, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu SDK Firebase dla Google Analytics do swojej aplikacji. Możesz wybrać bibliotekę bez zbierania IDFA lub z kolekcją IDFA.
  6. Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie twoich zależności w tle.

Teraz wykonaj kilka czynności konfiguracyjnych:

  1. W konsoli Firebase otwórz sekcję Linki dynamiczne .
  2. Jeśli nie zaakceptowałeś jeszcze warunków korzystania z usługi i ustawiłeś prefiks URI dla linków dynamicznych, zrób to, gdy zostaniesz o to poproszony.

    Jeśli masz już prefiks identyfikatora URI Dynamic Links, zanotuj go. Musisz go podać podczas automatycznego tworzenia Linków dynamicznych.

  3. Zalecane : określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach zastępczych. W ten sposób uniemożliwiasz nieautoryzowanym stronom tworzenie linków dynamicznych, które przekierowują z Twojej domeny do witryn, których nie kontrolujesz. Zobacz Zezwalanie na określone wzorce adresów URL .
  4. Upewnij się, że w ustawieniach aplikacji określono identyfikator App Store Twojej aplikacji i prefiks identyfikatora aplikacji. Aby wyświetlić i edytować ustawienia aplikacji, przejdź do strony Ustawienia projektu Firebase i wybierz aplikację na iOS.

    Sprawdź, czy projekt Firebase jest prawidłowo skonfigurowany do korzystania z Linków dynamicznych w aplikacji na iOS, otwierając plik apple-app-site-association hostowany w Twojej domenie Linków dynamicznych. Firebase będzie obsługiwać plik apple-app-site-association z katalogu głównego domeny oraz z podkatalogu .well-known . Na przykład:

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

    Jeśli Twoja aplikacja jest połączona, plik apple-app-site-association zawiera odwołanie do prefiksu identyfikatora aplikacji i identyfikatora pakietu aplikacji. Na przykład:

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

    Jeśli właściwość details jest pusta, sprawdź, czy określono prefiks identyfikatora aplikacji. Pamiętaj, że prefiks identyfikatora aplikacji może nie być taki sam jak identyfikator zespołu.

Dodaj Firebase do swojej aplikacji

  1. Zaimportuj moduł FirebaseCore do swojego UIApplicationDelegate , a także wszelkie inne moduły Firebase używane przez delegata aplikacji. Na przykład, aby użyć Cloud Firestore i uwierzytelniania:

    Szybki

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Cel C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Skonfiguruj współużytkowane wystąpienie FirebaseApp , zwykle w inicjatorze App lub w metodzie application(_:didFinishLaunchingWithOptions:) :

    Szybki

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

    Cel C

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

Użyj konsoli Firebase

Jeśli chcesz wygenerować pojedynczy link dynamiczny, albo do celów testowych, albo dla swojego zespołu marketingowego, aby łatwo utworzyć link, który może być użyty w czymś takim jak post w mediach społecznościowych, najprostszym sposobem będzie odwiedzenie konsoli Firebase i utworzenie takiego linku ręcznie postępując zgodnie z formularzem krok po kroku.

Użyj iOS Builder API

Możesz użyć interfejsu iOS Builder API do tworzenia dynamicznych linków z parametrów lub skrócenia długiego dynamicznego linku.

Aby utworzyć łącze dynamiczne, utwórz nowy obiekt DynamicLinkComponents i określ parametry łącza dynamicznego, ustawiając odpowiednie właściwości obiektu. Następnie pobierz długi link z właściwości url obiektu lub pobierz krótki link, wywołując shorten() .

Poniższy minimalny przykład tworzy długi link dynamiczny do https://www.example.com/my-page , który otwiera się w Twojej aplikacji na iOS na iOS i aplikacji com.example.android na Androida:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);

Aby utworzyć krótki link dynamiczny, zbuduj DynamicLinkComponents w ten sam sposób, a następnie wywołaj shorten() .

Budowanie krótkiego łącza wymaga wywołania sieciowego, więc zamiast bezpośrednio zwracać łącze, shorten() akceptuje procedurę obsługi uzupełniania, która jest wywoływana po zakończeniu żądania. Na przykład:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

Domyślnie krótkie linki dynamiczne są generowane z 17-znakowymi sufiksami linków, co sprawia, że ​​jest bardzo mało prawdopodobne, aby ktoś mógł odgadnąć prawidłowy link dynamiczny. Jeśli dla twojego przypadku użycia nie ma nic złego w odgadnięciu krótkiego linku, możesz chcieć generować przyrostki, które są tylko tak długie, jak to konieczne, aby były unikalne, co możesz zrobić, ustawiając właściwość dynamicLinkComponentsOptions :

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);
}];
      

Możesz użyć interfejsu API Dynamic Link Builder do tworzenia dynamicznych linków z dowolnymi obsługiwanymi parametrami. Zobacz dokumentację API , aby uzyskać szczegółowe informacje.

Poniższy przykład tworzy łącze dynamiczne z kilkoma typowymi zestawami parametrów:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);

Możesz ustawić parametry łącza dynamicznego z następującymi obiektami i właściwościami:

Komponenty DynamicLink
połączyć

Link, który otworzy Twoja aplikacja. Określ adres URL, który aplikacja może obsłużyć, zazwyczaj zawartość lub ładunek aplikacji, który inicjuje logikę specyficzną dla aplikacji (np. przyznanie użytkownikowi kuponu lub wyświetlenie ekranu powitalnego). Ten link musi być poprawnie sformatowanym adresem URL, być prawidłowo zakodowanym adresem URL, używać protokołu HTTP lub HTTPS i nie może być innym linkiem dynamicznym.

domenaURIPrefix Twój prefiks adresu URL łącza dynamicznego, który znajdziesz w konsoli Firebase. Domena Dynamic Link wygląda jak w następujących przykładach:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParametry
rezerwowy URL Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze Sklepu Play, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję treści w internecie lub wyświetlić stronę promocyjną aplikacji.
minimalna wersja versionCode minimalnej wersji Twojej aplikacji, w której można otworzyć link. Jeśli zainstalowana aplikacja jest starszą wersją, użytkownik zostanie przeniesiony do Sklepu Play, aby zaktualizować aplikację.
Parametry DynamicLinkIOS
AppStoreID Identyfikator App Store Twojej aplikacji, używany do wysyłania użytkowników do App Store, gdy aplikacja nie jest zainstalowana
rezerwowy URL Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji.
schemat niestandardowy Niestandardowy schemat adresu URL Twojej aplikacji, jeśli został zdefiniowany jako coś innego niż identyfikator pakietu Twojej aplikacji
iPadpowrotny URL Link do otwierania na iPadach, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć internetową wersję zawartości lub wyświetlić stronę promocyjną aplikacji.
IDPakietu iPada Identyfikator pakietu aplikacji na iOS, który ma być używany na iPadach w celu otwarcia łącza. Aplikację należy połączyć z projektem na stronie Przegląd w konsoli Firebase.
minimalna wersja aplikacji Numer wersji minimalnej wersji Twojej aplikacji, w której można otworzyć link. Ta flaga jest przekazywana do aplikacji po jej otwarciu, a aplikacja musi zdecydować, co z nią zrobić.
DynamicLinkNavigationInfoParameters
ForcedRedirectEnabled Jeśli ustawiono na „1”, pomiń stronę podglądu aplikacji po otwarciu Linku dynamicznego i zamiast tego przekieruj do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może bardziej niezawodnie wysyłać użytkowników do najbardziej odpowiedniego miejsca docelowego, gdy otworzą oni Dynamic Links w aplikacjach; jeśli jednak oczekujesz, że Dynamic Link będzie otwierany tylko w aplikacjach, które mogą niezawodnie otwierać Dynamic Links bez tej strony, możesz go wyłączyć za pomocą tego parametru. Ten parametr wpłynie na zachowanie Dynamic Link tylko na iOS.
DynamicLinkSocialMetaTagParametry
tytuł Tytuł używany, gdy link dynamiczny jest udostępniany w poście społecznościowym.
opisTekst Opis do użycia, gdy link dynamiczny jest udostępniany w poście społecznościowym.
URL obrazu Adres URL obrazu powiązanego z tym linkiem. Obraz powinien mieć co najmniej 300x200 px i mniej niż 300 KB.
DynamicLinkGoogleAnalyticsParametry
źródło
średni
kampania
termin
zawartość
Parametry analityczne Google Play. Te parametry ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) są przekazywane do Sklepu Play oraz dołączane do ładunku linku.
DynamicLinkItunesConnectAnalyticsParametry
providerToken
affiliateToken
kampaniaToken
Parametry analityczne iTunes Connect. Te parametry ( pt , at , ct ) są przekazywane do App Store.

Aby skrócić długi link dynamiczny, przekaż długi link dynamiczny do shortenURL(url:options:) wraz z obiektem DynamicLinkComponentsOptions , jeśli chcesz wygenerować link z krótkim sufiksem:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
[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);
}];

Domyślnie Dynamic Links używa identyfikatora pakietu Twojej aplikacji jako schematu adresu URL potrzebnego do otwarcia aplikacji. Zalecamy pozostanie przy tej wartości domyślnej, aby uprościć implementację.

Jednak programiści, którzy już używają niestandardowego schematu adresu URL do innych celów, mogą chcieć użyć tego samego niestandardowego schematu adresu URL również dla swoich linków dynamicznych. W takiej sytuacji możesz określić inny schemat adresów URL dla Linków dynamicznych Firebase, wykonując następujące czynności:

  1. Podczas konfigurowania aplikacji upewnij się, że określiłeś domyślny schemat adresu URL, który ma być używany przez aplikację przed skonfigurowaniem udostępnionej instancji FirebaseApp :

    Szybki

    Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
    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
    }
    

    Cel C

    Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
    - (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. Za każdym razem, gdy tworzysz link dynamiczny, musisz określić niestandardowy schemat adresu URL, z którego korzysta Twoja aplikacja. Możesz to zrobić za pomocą konsoli Firebase, ustawiając customScheme w Builder API, określając parametr ius w adresie URL lub wysyłając parametr iosCustomScheme do REST API

Następne kroki

Teraz, po utworzeniu linków dynamicznych, musisz skonfigurować swoją aplikację tak, aby odbierała linki dynamiczne i wysyłała użytkowników we właściwe miejsce w aplikacji, gdy użytkownik je otworzy.

Aby otrzymywać Dynamic Links w swojej aplikacji, zapoznaj się z dokumentacją dla systemów iOS , Android , C++ i Unity .

,

Za pomocą interfejsu Firebase Dynamic Links Builder API możesz tworzyć krótkie lub długie linki dynamiczne. Ten interfejs API akceptuje albo długi link dynamiczny, albo obiekt zawierający parametry linku dynamicznego, i zwraca adresy URL, takie jak w poniższych przykładach:

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

Warunki wstępne

Zanim zaczniesz, dodaj Firebase do swojego projektu iOS .

Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.

  1. W Xcode przy otwartym projekcie aplikacji przejdź do pozycji Plik > Dodaj pakiety .
  2. Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę Dynamic Links.
  5. Aby zapewnić optymalne działanie Linków dynamicznych, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu SDK Firebase dla Google Analytics do swojej aplikacji. Możesz wybrać bibliotekę bez zbierania IDFA lub z kolekcją IDFA.
  6. Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie twoich zależności w tle.

Teraz wykonaj kilka czynności konfiguracyjnych:

  1. W konsoli Firebase otwórz sekcję Linki dynamiczne .
  2. Jeśli nie zaakceptowałeś jeszcze warunków korzystania z usługi i ustawiłeś prefiks URI dla linków dynamicznych, zrób to, gdy zostaniesz o to poproszony.

    Jeśli masz już prefiks identyfikatora URI Dynamic Links, zanotuj go. Musisz go podać podczas automatycznego tworzenia Linków dynamicznych.

  3. Zalecane : określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach zastępczych. W ten sposób uniemożliwiasz nieautoryzowanym stronom tworzenie linków dynamicznych, które przekierowują z Twojej domeny do witryn, których nie kontrolujesz. Zobacz Zezwalanie na określone wzorce adresów URL .
  4. Upewnij się, że w ustawieniach aplikacji określono identyfikator App Store Twojej aplikacji i prefiks identyfikatora aplikacji. Aby wyświetlić i edytować ustawienia aplikacji, przejdź do strony Ustawienia projektu Firebase i wybierz aplikację na iOS.

    Sprawdź, czy projekt Firebase jest prawidłowo skonfigurowany do korzystania z Linków dynamicznych w aplikacji na iOS, otwierając plik apple-app-site-association hostowany w Twojej domenie Linków dynamicznych. Firebase będzie obsługiwać plik apple-app-site-association z katalogu głównego domeny oraz z podkatalogu .well-known . Na przykład:

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

    Jeśli Twoja aplikacja jest połączona, plik apple-app-site-association zawiera odwołanie do prefiksu identyfikatora aplikacji i identyfikatora pakietu aplikacji. Na przykład:

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

    Jeśli właściwość details jest pusta, sprawdź, czy określono prefiks identyfikatora aplikacji. Pamiętaj, że prefiks identyfikatora aplikacji może nie być taki sam jak identyfikator zespołu.

Dodaj Firebase do swojej aplikacji

  1. Zaimportuj moduł FirebaseCore do swojego UIApplicationDelegate , a także wszelkie inne moduły Firebase używane przez delegata aplikacji. Na przykład, aby użyć Cloud Firestore i uwierzytelniania:

    Szybki

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Cel C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Skonfiguruj współużytkowane wystąpienie FirebaseApp , zwykle w inicjatorze App lub w metodzie application(_:didFinishLaunchingWithOptions:) :

    Szybki

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

    Cel C

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

Użyj konsoli Firebase

Jeśli chcesz wygenerować pojedynczy link dynamiczny, albo do celów testowych, albo dla swojego zespołu marketingowego, aby łatwo utworzyć link, który może być użyty w czymś takim jak post w mediach społecznościowych, najprostszym sposobem będzie odwiedzenie konsoli Firebase i utworzenie takiego linku ręcznie postępując zgodnie z formularzem krok po kroku.

Użyj iOS Builder API

Możesz użyć interfejsu iOS Builder API do tworzenia dynamicznych linków z parametrów lub skrócenia długiego dynamicznego linku.

Aby utworzyć łącze dynamiczne, utwórz nowy obiekt DynamicLinkComponents i określ parametry łącza dynamicznego, ustawiając odpowiednie właściwości obiektu. Następnie pobierz długi link z właściwości url obiektu lub pobierz krótki link, wywołując shorten() .

Poniższy minimalny przykład tworzy długi link dynamiczny do https://www.example.com/my-page , który otwiera się w Twojej aplikacji na iOS na iOS i aplikacji com.example.android na Androida:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);

Aby utworzyć krótki link dynamiczny, zbuduj DynamicLinkComponents w ten sam sposób, a następnie wywołaj shorten() .

Budowanie krótkiego łącza wymaga wywołania sieciowego, więc zamiast bezpośrednio zwracać łącze, shorten() akceptuje procedurę obsługi uzupełniania, która jest wywoływana po zakończeniu żądania. Na przykład:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

Domyślnie krótkie linki dynamiczne są generowane z 17-znakowymi sufiksami linków, co sprawia, że ​​jest bardzo mało prawdopodobne, aby ktoś mógł odgadnąć prawidłowy link dynamiczny. Jeśli dla twojego przypadku użycia nie ma nic złego w odgadnięciu krótkiego linku, możesz chcieć generować przyrostki, które są tylko tak długie, jak to konieczne, aby były unikalne, co możesz zrobić, ustawiając właściwość dynamicLinkComponentsOptions :

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);
}];
      

Możesz użyć interfejsu API Dynamic Link Builder do tworzenia dynamicznych linków z dowolnymi obsługiwanymi parametrami. Zobacz dokumentację API , aby uzyskać szczegółowe informacje.

Poniższy przykład tworzy łącze dynamiczne z kilkoma typowymi zestawami parametrów:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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)")

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
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);

Możesz ustawić parametry łącza dynamicznego z następującymi obiektami i właściwościami:

Komponenty DynamicLink
połączyć

Link, który otworzy Twoja aplikacja. Określ adres URL, który aplikacja może obsłużyć, zazwyczaj zawartość lub ładunek aplikacji, który inicjuje logikę specyficzną dla aplikacji (np. przyznanie użytkownikowi kuponu lub wyświetlenie ekranu powitalnego). Ten link musi być poprawnie sformatowanym adresem URL, być prawidłowo zakodowanym adresem URL, używać protokołu HTTP lub HTTPS i nie może być innym linkiem dynamicznym.

domenaURIPrefix Twój prefiks adresu URL łącza dynamicznego, który znajdziesz w konsoli Firebase. Domena Dynamic Link wygląda jak w następujących przykładach:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParametry
rezerwowy URL Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze Sklepu Play, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję treści w internecie lub wyświetlić stronę promocyjną aplikacji.
minimalna wersja versionCode minimalnej wersji Twojej aplikacji, w której można otworzyć link. Jeśli zainstalowana aplikacja jest starszą wersją, użytkownik zostanie przeniesiony do Sklepu Play, aby zaktualizować aplikację.
Parametry DynamicLinkIOS
AppStoreID Identyfikator App Store Twojej aplikacji, używany do wysyłania użytkowników do App Store, gdy aplikacja nie jest zainstalowana
rezerwowy URL Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji.
schemat niestandardowy Niestandardowy schemat adresu URL Twojej aplikacji, jeśli został zdefiniowany jako coś innego niż identyfikator pakietu Twojej aplikacji
iPadpowrotny URL Link do otwierania na iPadach, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć internetową wersję zawartości lub wyświetlić stronę promocyjną aplikacji.
IDPakietu iPada Identyfikator pakietu aplikacji na iOS, który ma być używany na iPadach w celu otwarcia łącza. Aplikację należy połączyć z projektem na stronie Przegląd w konsoli Firebase.
minimalna wersja aplikacji Numer wersji minimalnej wersji Twojej aplikacji, w której można otworzyć link. Ta flaga jest przekazywana do aplikacji po jej otwarciu, a aplikacja musi zdecydować, co z nią zrobić.
DynamicLinkNavigationInfoParameters
ForcedRedirectEnabled Jeśli ustawiono na „1”, pomiń stronę podglądu aplikacji po otwarciu Linku dynamicznego i zamiast tego przekieruj do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może bardziej niezawodnie wysyłać użytkowników do najbardziej odpowiedniego miejsca docelowego, gdy otworzą oni Dynamic Links w aplikacjach; jeśli jednak oczekujesz, że Dynamic Link będzie otwierany tylko w aplikacjach, które mogą niezawodnie otwierać Dynamic Links bez tej strony, możesz go wyłączyć za pomocą tego parametru. Ten parametr wpłynie na zachowanie Dynamic Link tylko na iOS.
DynamicLinkSocialMetaTagParametry
tytuł Tytuł używany, gdy link dynamiczny jest udostępniany w poście społecznościowym.
opisTekst Opis do użycia, gdy link dynamiczny jest udostępniany w poście społecznościowym.
URL obrazu Adres URL obrazu powiązanego z tym linkiem. Obraz powinien mieć co najmniej 300x200 px i mniej niż 300 KB.
DynamicLinkGoogleAnalyticsParametry
źródło
średni
kampania
termin
zawartość
Parametry analityczne Google Play. Te parametry ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) są przekazywane do Sklepu Play oraz dołączane do ładunku linku.
DynamicLinkItunesConnectAnalyticsParametry
providerToken
affiliateToken
kampaniaToken
Parametry analityczne iTunes Connect. Te parametry ( pt , at , ct ) są przekazywane do App Store.

Aby skrócić długi link dynamiczny, przekaż długi link dynamiczny do shortenURL(url:options:) wraz z obiektem DynamicLinkComponentsOptions , jeśli chcesz wygenerować link z krótkim sufiksem:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
[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);
}];

Domyślnie Dynamic Links używa identyfikatora pakietu Twojej aplikacji jako schematu adresu URL potrzebnego do otwarcia aplikacji. Zalecamy pozostanie przy tej wartości domyślnej, aby uprościć implementację.

Jednak programiści, którzy już używają niestandardowego schematu adresu URL do innych celów, mogą chcieć użyć tego samego niestandardowego schematu adresu URL również dla swoich linków dynamicznych. W takiej sytuacji możesz określić inny schemat adresów URL dla Linków dynamicznych Firebase, wykonując następujące czynności:

  1. Podczas konfigurowania aplikacji upewnij się, że określiłeś domyślny schemat adresu URL, który ma być używany przez aplikację przed skonfigurowaniem udostępnionej instancji FirebaseApp :

    Szybki

    Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
    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
    }
    

    Cel C

    Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS lub watchOS.
    - (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. Za każdym razem, gdy tworzysz link dynamiczny, musisz określić niestandardowy schemat adresu URL, z którego korzysta Twoja aplikacja. Możesz to zrobić za pomocą konsoli Firebase, ustawiając customScheme w Builder API, określając parametr ius w adresie URL lub wysyłając parametr iosCustomScheme do REST API

Następne kroki

Teraz, po utworzeniu linków dynamicznych, musisz skonfigurować swoją aplikację tak, aby odbierała linki dynamiczne i wysyłała użytkowników we właściwe miejsce w aplikacji, gdy użytkownik je otworzy.

Aby otrzymywać Dynamic Links w swojej aplikacji, zapoznaj się z dokumentacją systemów iOS , Android , C++ i Unity .