Tworzenie linków dynamicznych w aplikacji Flutter

Korzystając z interfejsu API Kreatora linków dynamicznych Firebase, możesz tworzyć krótkie i długie linki dynamiczne. To API akceptuje długi link dynamiczny lub obiekt zawierający parametry linku dynamicznego i zwraca adresy URL podobne do tych przykładów:

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

Zanim utworzysz w aplikacji na Androida linki dynamiczne, musisz dodać 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 dla Fluttera (jeśli nie zostało to jeszcze zrobione).

  2. Aby zainstalować w katalogu głównym projektu Flutter wtyczkę Linki dynamiczne, uruchom to polecenie:

    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 używasz 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ę Dynamic Links, zanotuj ją. Podczas tworzenia linków dynamicznych automatycznie musisz podać domenę Linków dynamicznych.

    2. Zalecany sposób: w menu „Więcej” (⋮) określ wzorce adresów URL dozwolone w 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 artykuł Zezwalanie na określone wzorce adresów URL.

Aby utworzyć Dynamic Link, 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 Dynamic Link, prześlij obiekt DynamicLinkParameters do funkcji buildShortLink(). Utworzenie krótkiego linku wymaga wywołania 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 przyrostami składającymi się z zaledwie kilku znaków. Dzięki temu linki są bardziej zwarte, ale istnieje też możliwość, że ktoś zgadnie prawidłowy link krótki. Często nie ma to znaczenia, ponieważ link prowadzi do informacji publicznych.

Jeśli jednak Twoje krótkie linki prowadzą do informacji dotyczących konkretnego użytkownika, utwórz dłuższe linki z 17-znakowymi przyrostkami, które znacznie zmniejszają prawdopodobieństwo odgadnięcia prawidłowego linku dynamicznego. Aby to zrobić, przekaż parametr ShortDynamicLinkType.unguessable metodzie buildShortLink():

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

Za pomocą interfejsu Dynamic Link Builder API możesz tworzyć linki dynamiczne z użyciem dowolnych obsługiwanych parametrów. Zapoznaj się z dokumentacją interfejsu 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 Dynamic Link możesz ustawić na 2 sposoby:

Parametry DynamicLink
setLink Link, który otwiera aplikacja. Podaj adres URL, który może obsłużyć Twoja aplikacja. Zwykle jest to treść lub ładunek aplikacji, który inicjuje logikę związaną z aplikacją (np. przyznawanie użytkownikowi kuponu lub wyświetlanie ekranu powitalnego). Link musi być poprawnie sformatowanym adresem URL, prawidłowo zakodowanym adresem URL, zawierać protokół 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 jak w tych przykładach:
https://example.com/link
https://example.page.link
AndroidParameters
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.
setMinimumVersion Kod wersji minimalnej 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. Określ tę wartość, aby wykonać inną czynność niż zainstalowanie aplikacji z App Store, gdy aplikacja nie jest zainstalowana, np. otworzyć wersję mobilną treści w przeglądarce 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 otwierania się na iPadzie, gdy aplikacja nie jest zainstalowana. Określ to, aby wykonać inną czynność niż zainstalowanie aplikacji z App Store, gdy aplikacja nie jest zainstalowana, np. otworzyć wersję internetową treści lub wyświetlić stronę promocyjną aplikacji.
setIpadBundleId 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 wersji aplikacji, która może otworzyć link. Ten parametr jest przekazywany do aplikacji po jej otwarciu, a ona musi zdecydować, co z nim zrobić.
Parametry nawigacji
setForcedRedirectEnabled Jeśli wartość to 1, po otwarciu linku dynamicznego pomiń stronę podglądu aplikacji i przekieruj użytkownika do aplikacji lub sklepu. Strona podglądu aplikacji (domyślnie włączona) może skuteczniej kierować użytkowników na najbardziej odpowiednią stronę po otwarciu przez nich linków dynamicznych w aplikacjach. Jeśli jednak chcesz, aby linki dynamiczne otwierały się tylko w aplikacjach, które mogą otwierać je bez tej strony, możesz wyłączyć tę funkcję za pomocą tego parametru. Ten parametr będzie miał wpływ 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 postach w mediach społecznościowych.
ustawOpis Opis, który ma być używany, gdy Dynamic Link jest udostępniany w postach 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 nie więcej 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, 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.