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 .
Skonfiguruj Firebase i pakiet SDK Linków dynamicznych
Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.
- W Xcode przy otwartym projekcie aplikacji przejdź do pozycji Plik > Dodaj pakiety .
- Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
- Wybierz bibliotekę Dynamic Links.
- 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.
- Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie twoich zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Teraz wykonaj kilka czynności konfiguracyjnych:
- W konsoli Firebase otwórz sekcję Linki dynamiczne .
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.
- 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 .
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ć plikapple-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
- Zaimportuj moduł
FirebaseCore
do swojegoUIApplicationDelegate
, 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; // ...
- Skonfiguruj współużytkowane wystąpienie
FirebaseApp
, zwykle w inicjatorzeApp
lub w metodzieapplication(_: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.
Utwórz łącze dynamiczne z parametrów
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
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
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
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Cel C
[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
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
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); }];
Parametry łącza dynamicznego
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
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
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. |
Skróć długi Dynamic Link
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
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
[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); }];
Określanie niestandardowego schematu adresów URL dla linków dynamicznych
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:
- 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; }
- 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 parametrius
w adresie URL lub wysyłając parametriosCustomScheme
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 .
Skonfiguruj Firebase i pakiet SDK Linków dynamicznych
Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.
- W Xcode przy otwartym projekcie aplikacji przejdź do pozycji Plik > Dodaj pakiety .
- Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
- Wybierz bibliotekę Dynamic Links.
- 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.
- Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie twoich zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Teraz wykonaj kilka czynności konfiguracyjnych:
- W konsoli Firebase otwórz sekcję Linki dynamiczne .
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.
- 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 .
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ć plikapple-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
- Zaimportuj moduł
FirebaseCore
do swojegoUIApplicationDelegate
, 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; // ...
- Skonfiguruj współużytkowane wystąpienie
FirebaseApp
, zwykle w inicjatorzeApp
lub w metodzieapplication(_: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.
Utwórz łącze dynamiczne z parametrów
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
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
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
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Cel C
[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
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
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); }];
Parametry łącza dynamicznego
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
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
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. |
Skróć długi Dynamic Link
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
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
[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); }];
Określanie niestandardowego schematu adresów URL dla Linków dynamicznych
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:
- 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; }
- 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 parametrius
w adresie URL lub wysyłając parametriosCustomScheme
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 .