Możesz tworzyć krótkie lub długie linki dynamiczne za pomocą interfejsu Firebase Dynamic Links Builder API. Ten interfejs API akceptuje długi link dynamiczny lub 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
Skonfiguruj Firebase i pakiet Dynamic Links SDK
Aby móc tworzyć linki dynamiczne w aplikacji na Androida, musisz dołączyć pakiet Firebase SDK. Jeśli Twoja aplikacja jest skonfigurowana do odbierania linków dynamicznych, te kroki zostały już wykonane i możesz pominąć tę sekcję.
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
Podczas rejestrowania aplikacji podaj klucz podpisywania SHA-1. Jeśli korzystasz z linków do aplikacji, podaj również swój klucz SHA-256.
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle
) dodaj zależność dla biblioteki Dynamic Links Android. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.Aby optymalnie korzystać z Linków dynamicznych, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu Firebase SDK dla Google Analytics do swojej aplikacji.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać ze zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z BoM
Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać ze zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z BoM
Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
- W konsoli Firebase otwórz sekcję Linki dynamiczne .
Jeśli jeszcze nie zaakceptowałeś warunków korzystania z usługi i nie ustawiłeś domeny dla swoich Linków dynamicznych, zrób to po wyświetleniu monitu.
Jeśli masz już domenę z linkami dynamicznymi, zanotuj to. Podczas programowego tworzenia linków dynamicznych musisz podać domenę linków dynamicznych.
- Zalecane : określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach rezerwowych. W ten sposób uniemożliwiasz nieupoważnionym stronom tworzenie linków dynamicznych przekierowujących z Twojej domeny do witryn, nad którymi nie masz kontroli. Zobacz Zezwalaj na określone wzorce adresów URL .
Użyj konsoli Firebase
Jeśli chcesz wygenerować pojedynczy link dynamiczny do celów testowych lub dla zespołu marketingowego, aby łatwo utworzyć link, którego można użyć w czymś takim jak post w mediach społecznościowych, najprostszym sposobem byłoby odwiedzenie konsoli Firebase i utworzenie takiego linku ręcznie, postępując zgodnie z formularzem krok po kroku.
Utwórz łącze dynamiczne z parametrów
Aby utworzyć łącze dynamiczne, utwórz nowy obiekt
DynamicLink
za pomocą jego konstruktora, określając parametry łącza dynamicznego za pomocą metod konstruktora. Następnie wywołajbuildDynamicLink
lubbuildShortDynamicLink
.Poniższy minimalny przykład tworzy długi link dynamiczny do
https://www.example.com/
, który otwiera się w Twojej aplikacji na Androida na Androida i aplikacjicom.example.ios
na iOS:Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
Aby utworzyć krótkie łącze dynamiczne, utwórz
DynamicLink
w ten sam sposób, a następnie wywołaj funkcjębuildShortDynamicLink
. Zbudowanie krótkiego łącza wymaga wywołania sieciowego, więc zamiast bezpośredniego zwracania łączabuildShortDynamicLink
zwracaTask
, co udostępnia krótkie łącze po zakończeniu żądania. Na przykład:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
Domyślnie krótkie łącza dynamiczne są generowane z 17-znakowymi sufiksami łącza, co sprawia, że odgadnięcie prawidłowego łącza dynamicznego jest bardzo mało prawdopodobne. Jeśli w twoim przypadku nie ma nic złego w tym, że ktoś pomyślnie odgadnie krótki link, możesz woleć generować sufiksy, które są tak długie, jak to konieczne, aby były unikalne, co możesz zrobić, przekazując
ShortDynamicLink.Suffix.SHORT
do metodybuildShortDynamicLink
:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Parametry łącza dynamicznego
Możesz użyć interfejsu Dynamic Link Builder API do tworzenia linków dynamicznych z dowolnymi obsługiwanymi parametrami. Aby uzyskać szczegółowe informacje, zapoznaj się z dokumentacją interfejsu API .
Poniższy przykład tworzy łącze dynamiczne z ustawionymi kilkoma typowymi parametrami:
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
Parametry łącza dynamicznego można ustawić za pomocą następujących metod:
Parametry DynamicLink zestawLink Link, który otworzy Twoja aplikacja. Określ adres URL, który może obsłużyć Twoja aplikacja, zazwyczaj treść lub ładunek aplikacji, który inicjuje logikę specyficzną dla aplikacji (np. przyznanie użytkownikowi kuponu lub wyświetlenie ekranu powitalnego). Ten link musi być dobrze sformatowanym adresem URL, odpowiednio zakodowanym w adresie URL, używać protokołu HTTP lub HTTPS i nie może być innym linkiem dynamicznym.
setDomainUriPrefix Prefiks adresu URL linku dynamicznego, który można znaleźć w konsoli Firebase. Domena z linkiem dynamicznym wygląda tak, jak w poniższych przykładach: https://example.com/link https://example.page.link
Parametry Androida setFallbackUrl Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż zainstalować aplikację ze Sklepu Play, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną swojej aplikacji. ustaw wersję minimalną versionCode
minimalnej wersji Twojej aplikacji, która może otworzyć łącze. Jeśli zainstalowana aplikacja jest starszą wersją, użytkownik zostanie przeniesiony do Sklepu Play, aby zaktualizować aplikację.IosParameters ustaw identyfikator AppStore Identyfikator Twojej aplikacji w App Store, używany do odsyłania użytkowników do App Store, gdy aplikacja nie jest zainstalowana setFallbackUrl Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż zainstalować aplikację ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową zawartości lub wyświetlić stronę promocyjną swojej aplikacji. ustaw schemat niestandardowy Niestandardowy schemat adresu URL Twojej aplikacji, jeśli został zdefiniowany jako coś innego niż identyfikator pakietu Twojej aplikacji setIpadFallbackUrl Łącze do otwierania na iPadach, gdy aplikacja nie jest zainstalowana. Określ to, aby zrobić coś innego niż zainstalować aplikację ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć internetową wersję zawartości lub wyświetlić stronę promocyjną swojej aplikacji. setIpadPakietId Identyfikator pakietu aplikacji na iOS do użycia na iPadzie w celu otwarcia łącza. Aplikacja musi być połączona z projektem na stronie Przegląd konsoli Firebase. ustaw wersję minimalną Numer wersji minimalnej wersji Twojej aplikacji, która umożliwia otwarcie linku. Ta flaga jest przekazywana do aplikacji po jej otwarciu, a aplikacja musi zdecydować, co z nią zrobić. NavigationInfoParameters setForcedRedirectEnabled W przypadku ustawienia „1” pomiń stronę podglądu aplikacji po otwarciu łącza dynamicznego i zamiast tego przekieruj do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może bardziej niezawodnie odsyłać użytkowników do najodpowiedniejszego miejsca docelowego, gdy otworzą łącza dynamiczne w aplikacjach; jeśli jednak oczekujesz, że łącze dynamiczne będzie otwierane tylko w aplikacjach, które mogą niezawodnie otwierać łącza dynamiczne bez tej strony, możesz je wyłączyć za pomocą tego parametru. Ten parametr wpłynie na zachowanie łącza dynamicznego tylko w systemie iOS. SocialMetaTagParameters ustawTytuł Tytuł używany, gdy łącze dynamiczne jest udostępniane w poście społecznościowym. zestaw Opis Opis, który ma być używany, gdy łącze dynamiczne jest udostępniane w poście społecznościowym. ustawImageUrl Adres URL obrazu powiązanego z tym linkiem. Obraz powinien mieć co najmniej 300 x 200 pikseli i mniej niż 300 KB. Parametry GoogleAnalytics zestawŹródło
zestawŚredni
zestawKampania
ustawTermin
zestawZawartośćParametry analityczne Google Play. Te parametry ( utm_source
,utm_medium
,utm_campaign
,utm_term
,utm_content
) są przekazywane do Sklepu Play, a także dołączane do ładunku łącza.ItunesConnectAnalyticsParameters ustaw token dostawcy
ustawAffiliateToken
ustawCampaignTokenParametry analityczne iTunes Connect. Te parametry ( pt
,at
,ct
) są przekazywane do App Store.Skróć długi link dynamiczny
Aby skrócić długi link dynamiczny, określ adres URL linku dynamicznego za pomocą
setLongLink
zamiast ustawiania parametrów za pomocą innych metod konstruktora:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2023-05-30 UTC.
[] []