Tworzenie linków dynamicznych w aplikacji Flutter

Krótkie i długie linki dynamiczne możesz tworzyć 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 tych przykładach:

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

Aby tworzyć linki dynamiczne w aplikacji na Androida, musisz uwzględnić pakiet SDK Firebase. Jeśli Twoja aplikacja jest skonfigurowana do otrzymywania linków dynamicznych, te czynności zostały już wykonane i możesz pominąć tę sekcję.

  1. Zainstaluj i zainicjuj pakiety SDK Firebase na potrzeby Flutter, jeśli jeszcze ich nie masz.

  2. Z poziomu głównego katalogu projektu Flutter uruchom to polecenie, by zainstalować wtyczkę Linki dynamiczne:

    flutter pub add firebase_dynamic_links
    
  3. Jeśli tworzysz aplikację na Androida, otwórz stronę Ustawienia projektu w konsoli Firebase i upewnij się, że został określony klucz podpisywania SHA-1. Jeśli korzystasz z linków aplikacji, podaj też klucz SHA-256.

  4. W konsoli Firebase otwórz sekcję Linki dynamiczne.

    1. 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ę Linki dynamiczne, zanotuj ją. Podczas automatycznego tworzenia linków dynamicznych musisz podać domenę Linków dynamicznych.

    2. Zalecane: w menu „Więcej” (⋮) określ wzorce adresów URL dozwolone w Twoich precyzyjnych linkach i linkach zastępczych. Dzięki temu uniemożliwisz nieautoryzowanym osobom tworzenie linków dynamicznych przekierowujących z Twojej domeny do witryn, nad którymi nie masz kontroli.

      Zobacz Zezwalanie na określone wzorce adresów URL.

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 strony https://www.example.com/, który otwiera się za pomocą ikony com.example.app.android na Androidzie i 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(). Do utworzenia krótkiego linku wymagane jest wywołanie sieciowe. 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 można też odgadnąć prawidłowy krótki link. Często nie ma w tym nic wspólnego, bo link prowadzi do informacji publicznych.

Jeśli jednak krótkie linki prowadzą do informacji związanych z użytkownikami, zalecamy tworzenie dłuższych linków z sufiksami 17-znakowymi, aby uniemożliwić odgadnięcie prawidłowego linku dynamicznego. Aby to zrobić, przekaż ShortDynamicLinkType.unguessable do metody buildShortLink():

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Za pomocą interfejsu Dynamic Link Builder API możesz tworzyć linki dynamiczne za pomocą dowolnych obsługiwanych parametrów. Zobacz dokumentację API.

Poniższy przykład pokazuje utworzenie linku dynamicznego z kilkoma wspólnymi 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 DynamicLink
setLink Link, który otworzy się Twoja aplikacja. Określ adres URL, który może obsługiwać Twoja aplikacja (zwykle jest to zawartość lub ładunek aplikacji), który inicjuje logikę związaną z tą aplikacją (np. przyznaj użytkownikowi kupon lub wyświetli ekran powitalny). Ten link musi być prawidłowo sformatowanym adresem URL, mieć prawidłowo zakodowany adres URL, używać protokołu HTTP lub HTTPS i nie może być kolejnym linkiem dynamicznym.
setDomainUriPrefix, Prefiks adresu URL linku dynamicznego, który możesz znaleźć w konsoli Firebase. Domena linku dynamicznego wygląda jak w tych przykładach:
https://example.com/link
https://example.page.link
Parametry Androida
setFallbackUrl Link do otwarcia, gdy aplikacja nie jest zainstalowana. Wybierz to ustawienie, jeśli chcesz, by aplikacja nie była instalowana ze Sklepu Play. Może to być na przykład otwieranie wersji treści w przeglądarce mobilnej lub wyświetlanie strony promocyjnej aplikacji.
ustaw minimalną wersję Wartość versionCode minimalnej wersji aplikacji, która może otworzyć link. Jeśli zainstalowana jest starsza wersja aplikacji, użytkownik zostanie przekierowany do Sklepu Play, aby ją uaktualnić.
Parametry IOS
setAppStoreId Identyfikator App Store Twojej aplikacji używany do kierowania użytkowników do App Store, gdy aplikacja nie jest zainstalowana
setFallbackUrl Link do otwarcia, gdy aplikacja nie jest zainstalowana. Wybierz to ustawienie, jeśli chcesz, by aplikacja nie była zainstalowana z App Store. Może to być na przykład otwarcie wersji aplikacji w przeglądarce mobilnej lub wyświetlenie strony promocyjnej aplikacji.
setCustomScheme Schemat niestandardowego adresu URL aplikacji, jeśli został zdefiniowany jako inny niż identyfikator pakietu aplikacji
setIpadFallbackUrl. Link do otwierania się na iPadzie, gdy aplikacja nie jest zainstalowana. Wybierz to ustawienie, jeśli aplikacja nie jest zainstalowana z App Store. Może to być na przykład otwarcie internetowej wersji treści lub wyświetlenie strony promocyjnej aplikacji.
Identyfikator zestawuIpadBundle Identyfikator pakietu aplikacji na iOS, którego chcesz użyć na iPadzie do otwarcia linku. Aplikację należy połączyć z projektem na stronie Przegląd w konsoli Firebase.
ustaw minimalną wersję Numer minimalnej wersji aplikacji, która może otworzyć link. Ta flaga jest przekazywana do aplikacji po otwarciu i musi zdecydować, co z nią zrobić.
Parametry nawigacji
setForcedRedirectEnabled Jeśli ustawisz wartość „1”, pomiń stronę podglądu aplikacji po otwarciu linku dynamicznego i przekieruj ją do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może bardziej niezawodnie kierować użytkowników do najbardziej odpowiednich miejsc docelowych, gdy otwierają linki dynamiczne w aplikacjach. Jeśli jednak oczekujesz, że link dynamiczny będzie się otwierał tylko w aplikacjach, które mogą prawidłowo otwierać linki dynamiczne bez tej strony, możesz go wyłączyć za pomocą tego parametru. Ten parametr będzie miał wpływ na działanie linku dynamicznego tylko w systemie iOS.
SocialMetaTagParameters
setTitle Tytuł używany, gdy link dynamiczny jest udostępniany w poście w mediach społecznościowych.
ustawOpis Opis 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 przynajmniej 300 × 200 pikseli i rozmiar mniejszy niż 300 KB.
Parametry GoogleAnalytics
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 oraz dołączane do ładunku linku.
ItunesConnectAnalyticsParameters
setProviderToken
setaffiliateToken
setCampaignToken
Parametry analityczne iTunes Connect. Te parametry („pt”, „at”, „ct”) są przekazywane do App Store.