Za pomocą interfejsu Firebase Dynamic Links Builder API możesz tworzyć krótkie i długie linki dynamiczne. Ta usługa API akceptuje długi link dynamiczny lub obiekt zawierający parametry linku dynamicznego i zwraca adresy URL podobne do tych w przykładach poniżej:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Konfiguracja Firebase i pakietu SDK Linków dynamicznych
Zanim utworzysz linki dynamiczne w aplikacji na Androida, musisz dodać pakiet SDK Firebase. Jeśli Twoja aplikacja jest skonfigurowana do odbierania Dynamicznych linków, te czynności zostały już wykonane i możesz pominąć tę sekcję.
Zainstaluj i zainicjuj pakiety SDK Firebase dla Fluttera, jeśli nie zostało to jeszcze zrobione.
W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę Linków dynamicznych:
flutter pub add firebase_dynamic_links
Jeśli tworzysz aplikację na Androida, otwórz stronę Ustawienia projektu w konsoli Firebase i sprawdź, czy masz określony klucz podpisu SHA-1. Jeśli używasz linków 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 wyświetlanymi instrukcjami.
Jeśli masz już domenę Dynamic Links, zanotuj ją. Podczas tworzenia linków dynamicznych automatycznie 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.
Tworzenie linku dynamicznego na podstawie parametrów
Aby utworzyć Dynamic Link, utwórz nowy obiekt DynamicLinkParameters
i przekaż go do funkcji buildLink()
lub buildShortLink()
.
Poniższy minimalny przykład tworzy długi dynamiczny link do
https://www.example.com/
, który otwiera się w 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 Dynamic Link, przekaż obiekt DynamicLinkParameters
do
buildShortLink()
. Utworzenie krótkiego linku wymaga połączenia z siecią.
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, które mają tylko kilka znaków. Dzięki temu linki są bardziej zwięzłe, 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 krótkie linki prowadzą do informacji o konkretnym użytkowniku, 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 Dynamic Link Builder API możesz tworzyć linki dynamiczne z dowolnymi obsługiwanymi parametrami. Więcej informacji znajdziesz w dokumentacji interfejsu API.
W tym przykładzie tworzymy link dynamiczny z kilkoma ustawionymi 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 Dynamic Linka możesz ustawić za pomocą tych metod:
Parametry DynamicLink | |
---|---|
setLink | Link, który otworzy aplikacja. Określ adres URL, który może obsłużyć Twoja aplikacja. Zwykle jest to 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 adresem URL, odpowiednio zakodowanym, korzystać z protokołu HTTP lub HTTPS i nie może być innym dynamicznym linkiem. |
setDomainUriPrefix | Prefiks adresu URL linku dynamicznego, który znajdziesz w konsoli Firebase. A
Domena linku dynamicznego wygląda tak jak w tych przykładach:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Link do otwarcia, gdy aplikacja nie jest zainstalowana. Określ, co ma się stać, gdy aplikacja nie jest zainstalowana, np. otwórz mobilną wersję internetową treści lub wyświetl 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 do otwarcia, gdy aplikacja nie jest zainstalowana. Określ tę wartość, aby w przypadku, gdy aplikacja nie jest zainstalowana, wykonać inne działanie niż zainstalowanie jej z App Store, np. otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji. |
setCustomScheme | Niestandardowy schemat adresów URL aplikacji, jeśli jest zdefiniowany jako inny niż identyfikator pakietu aplikacji. |
setIpadFallbackUrl | Link do otwarcia na iPadach, gdy aplikacja nie jest zainstalowana. Określ tę wartość, aby w przypadku braku zainstalowanej aplikacji wykonać inne działanie niż instalacja aplikacji ze sklepu App Store, np. otworzyć wersję internetową treści lub wyświetlić stronę promocyjną aplikacji. |
setIpadBundleId | Identyfikator pakietu aplikacji na iOS, która ma być używana na iPadach do otwierania linku. Aplikacja musi być połączona z projektem na stronie Przegląd w konsoli Firebase. |
setMinimumVersion | Numer wersji minimalnej wersji aplikacji, która może otworzyć link. Ten flag jest przekazywany do aplikacji po jej otwarciu, a aplikacja musi zdecydować, co z nim zrobić. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Jeśli wartość tego parametru to „1”, po otwarciu linku dynamicznego pomiń stronę podglądu aplikacji i zamiast tego przekieruj użytkownika do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może skuteczniej kierować 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ą to robić niezawodnie bez tej strony, możesz ją wyłączyć za pomocą tego parametru. Ten parametr wpłynie na działanie linku dynamicznego tylko w systemie iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Tytuł, który ma być używany, gdy Dynamic Link jest udostępniany w poście w mediach społecznościowych. |
setDescription | Opis, który ma być używany, gdy Dynamiczny link 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, a jego rozmiar nie może przekraczać 300 KB. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
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 linku. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Parametry analityczne iTunes Connect. Te parametry (`pt`, `at`, `ct`) są przekazywane do App Store. |