Za pomocą interfejsu Firebase Dynamic Links Builder API możesz tworzyć krótkie i długie Linki dynamiczne Firebase. Ten interfejs API przyjmuje długi link dynamiczny lub obiekt zawierający parametry linku dynamicznego i zwraca adresy URL podobne do tych w poniższych przykładach:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Konfiguracja Firebase i pakietu Dynamic Links SDK
Zanim zaczniesz tworzyć linki dynamiczne w aplikacji na Androida, musisz dodać pakiet SDK Firebase. Jeśli Twoja aplikacja jest skonfigurowana do odbierania linków dynamicznych, te kroki zostały już wykonane i możesz pominąć tę sekcję.
Zainstaluj i zainicjuj pakiety SDK Firebase dla Flattera, jeśli jeszcze tego nie zrobiłeś.
Aby zainstalować wtyczkę Linków dynamicznych, w katalogu głównym projektu Fluttera uruchom to polecenie:
flutter pub add firebase_dynamic_linksJeśli tworzysz aplikację na Androida, otwórz w konsoli Firebase stronę Ustawienia projektu i upewnij się, że masz podany klucz podpisywania SHA-1. Jeśli używasz linków do aplikacji, podaj też klucz SHA-256.
W konsoli Firebase otwórz sekcję Linki dynamiczne.
Jeśli nie masz jeszcze skonfigurowanej domeny dla Linków dynamicznych, kliknij przycisk Rozpocznij i postępuj zgodnie z instrukcjami.
Jeśli masz już domenę Linków dynamicznych, zanotuj ją. Podczas programowego tworzenia linków dynamicznych musisz podać domenę Linków dynamicznych.

Zalecane: w menu "Więcej" (⋮) określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach zastępczych. Dzięki temu uniemożliwisz nieupoważnionym osobom tworzenie linków dynamicznych, które przekierowują z Twojej domeny do witryn, nad którymi nie masz kontroli.
Więcej informacji znajdziesz w artykule Zezwalanie na określone wzorce adresów URL.
Tworzenie linku dynamicznego na podstawie parametrów
Aby utworzyć link dynamiczny, utwórz nowy obiekt DynamicLinkParameters i przekaż go do buildLink() lub buildShortLink().
Ten minimalny przykład tworzy długi link dynamiczny do https://www.example.com/, który otwiera się w aplikacji com.example.app.android na Androidzie i w aplikacji com.example.app.ios na iOS:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Aby utworzyć krótki link dynamiczny, przekaż obiekt DynamicLinkParameters do buildShortLink(). Utworzenie krótkiego linku wymaga wywołania sieciowego.
Przykład:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Domyślnie krótkie linki dynamiczne są generowane z sufiksami o długości zaledwie kilku znaków. Dzięki temu linki są bardziej kompaktowe, ale istnieje też możliwość, że ktoś odgadnie prawidłowy krótki link. Często nie ma w tym nic złego, ponieważ link prowadzi do informacji publicznych.
Jeśli jednak Twoje krótkie linki prowadzą do informacji specyficznych dla użytkownika, utwórz dłuższe linki z 17-znakowymi sufiksami, które sprawią, że odgadnięcie prawidłowego linku dynamicznego będzie bardzo mało prawdopodobne. Aby to zrobić, przekaż ShortDynamicLinkType.unguessable do metody buildShortLink():
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Parametry linku dynamicznego
Za pomocą interfejsu API kreatora linków dynamicznych możesz tworzyć linki dynamiczne z dowolnymi obsługiwanymi parametrami. Więcej informacji znajdziesz w dokumentacji API.
Ten przykład tworzy link dynamiczny z ustawionymi kilkoma typowymi parametrami:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Parametry linku dynamicznego możesz ustawić za pomocą tych metod:
| Parametry linku dynamicznego | |
|---|---|
| setLink | Link, który otworzy Twoja aplikacja. Określ adres URL, który może obsługiwać Twoja aplikacja, zwykle 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ć prawidłowo sformatowanym adrelem URL, prawidłowo zakodowanym w formacie URL, używać protokołu HTTP lub HTTPS i nie może być innym linkiem dynamicznym. |
| setDomainUriPrefix | Prefiks adresu URL linku dynamicznego, który znajdziesz w konsoli Firebase. Domena linku dynamicznego wygląda tak jak w tych przykładach:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | Link, który ma się otworzyć, gdy aplikacja nie jest zainstalowana. Określ ten parametr, aby w przypadku, gdy aplikacja nie jest zainstalowana, wykonać inną czynność niż zainstalowanie aplikacji ze Sklepu Play, np. otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji. |
| setMinimumVersion | Wartość versionCode minimalnej wersji aplikacji, która może otworzyć link. Jeśli zainstalowana aplikacja jest starszą wersją, użytkownik zostanie przekierowany do Sklepu Play, aby ją zaktualizować. |
| IosParameters | |
|---|---|
| setAppStoreId | Identyfikator aplikacji w sklepie App Store, który służy do przekierowywania użytkowników do sklepu App Store, gdy aplikacja nie jest zainstalowana |
| setFallbackUrl | Link, który ma się otworzyć, gdy aplikacja nie jest zainstalowana. Określ ten parametr, aby w przypadku, gdy aplikacja nie jest zainstalowana, wykonać inną czynność niż zainstalowanie aplikacji ze sklepu App Store, np. otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji. |
| setCustomScheme | Niestandardowy schemat URI adresu URL aplikacji, jeśli jest inny niż identyfikator pakietu aplikacji. |
| setIpadFallbackUrl | Link, który ma się otworzyć na iPadach, gdy aplikacja nie jest zainstalowana. Określ ten parametr, aby wykonać inną czynność niż zainstalowanie aplikacji ze sklepu App Store w przypadku, gdy aplikacja nie jest zainstalowana, np. otworzyć wersję internetową treści lub wyświetlić stronę promocyjną aplikacji. |
| setIpadBundleId | Identyfikator pakietu aplikacji na iOS, która ma się otworzyć na iPadach. Aplikacja musi być połączona z Twoim projektem na stronie Przegląd w konsoli Firebase. |
| setMinimumVersion | Numer wersji minimalnej wersji aplikacji, która może otworzyć link. Ta flaga jest przekazywana do aplikacji po jej otwarciu, a aplikacja musi zdecydować, co z nią zrobić. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | Jeśli ustawisz wartość „1”, strona podglądu aplikacji zostanie pominięta po otwarciu linku dynamicznego i zamiast tego nastąpi przekierowanie do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może niezawodnie przekierowywać użytkowników do najbardziej odpowiedniego miejsca docelowego, gdy otwierają oni linki dynamiczne w aplikacjach. Jeśli jednak oczekujesz, że link dynamiczny będzie otwierany tylko w aplikacjach, które mogą niezawodnie otwierać linki dynamiczne bez tej strony, możesz ją wyłączyć za pomocą tego parametru. Ten parametr będzie wpływać na działanie linku dynamicznego tylko na iOS. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | Tytuł, który ma być używany, gdy link dynamiczny jest udostępniany w poście w mediach społecznościowych. |
| setDescription | Opis, który ma być używany, gdy link dynamiczny jest udostępniany w poście w mediach społecznościowych. |
| setImageUrl | Adres URL obrazu powiązanego z tym linkiem. Obraz powinien mieć wymiary co najmniej 300 x 200 pikseli i rozmiar mniejszy niż 300 kB. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
Parametry Google Analytics w Google Play. Te parametry (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) są przekazywane do Sklepu Play i dołączane do ładunku linku. |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
Parametry Google Analytics w iTunes Connect. Te parametry (`pt`, `at`, `ct`) są przekazywane do sklepu App Store. |