Twórz linki dynamiczne w aplikacji Flutter

Możesz tworzyć krótkie lub długie linki dynamiczne za pomocą interfejsu API Firebase Dynamic Links Builder. Ten interfejs API akceptuje długi link dynamiczny lub obiekt zawierający parametry łącza dynamicznego i zwraca adresy URL podobne do poniższych przykładów:

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

Zanim będziesz mógł utworzyć linki dynamiczne w aplikacji na Androida, musisz dołączyć pakiet SDK Firebase. Jeśli Twoja aplikacja jest skonfigurowana do otrzymywania linków dynamicznych, wykonałeś już te kroki i możesz pominąć tę sekcję.

  1. Zainstaluj i zainicjuj zestawy SDK Firebase dla Flutter, jeśli jeszcze tego nie zrobiłeś.

  2. Z katalogu głównego projektu Flutter uruchom następujące polecenie, aby zainstalować wtyczkę Dynamic Links:

    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 podałeś klucz podpisywania SHA-1. Jeśli korzystasz z łączy aplikacji, podaj także klucz SHA-256.

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

    1. Jeśli nie skonfigurowałeś jeszcze domeny dla swoich łączy dynamicznych, kliknij przycisk Rozpocznij i postępuj zgodnie z instrukcjami.

      Jeśli masz już domenę Dynamic Links, zwróć na to uwagę. Podczas programowego tworzenia łączy dynamicznych musisz podać domenę łączy dynamicznych.

    2. Zalecane : w menu „Więcej” (⋮) określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach zastępczych. W ten sposób uniemożliwiasz nieupoważnionym osobom 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 .

Aby utworzyć łącze dynamiczne, utwórz nowy obiekt DynamicLinkParameters i przekaż go do buildLink() lub buildShortLink() .

Poniższy minimalny przykład tworzy długi link dynamiczny do https://www.example.com/ , który otwiera się za pomocą 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ótkie łącze dynamiczne, przekaż obiekt DynamicLinkParameters do buildShortLink() . Budowa krótkiego łącza wymaga połączenia sieciowego. Na 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 generowane są krótkie linki dynamiczne z przyrostkami składającymi się tylko z kilku znaków. Chociaż sprawia to, że linki są bardziej zwarte, stwarza to również możliwość odgadnięcia prawidłowego krótkiego linku. Często nie dzieje się nic złego, jeśli ktoś to zrobi, ponieważ link prowadzi do informacji publicznej.

Jeśli jednak krótkie linki prowadzą do informacji specyficznych dla użytkownika, należy utworzyć dłuższe linki z 17-znakowymi sufiksami, które sprawią, że odgadnięcie prawidłowego łącza dynamicznego będzie bardzo mało prawdopodobne. W tym celu przekaż ShortDynamicLinkType.unguessable do metody buildShortLink() :

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

Możesz użyć interfejsu API narzędzia Dynamic Link Builder do tworzenia łączy dynamicznych z dowolnymi obsługiwanymi parametrami. Zobacz dokumentację API .

Poniższy przykład tworzy łącze dynamiczne z kilkoma wspólnymi zestawami parametrów:

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 łącza dynamicznego można ustawić następującymi metodami:

Parametry DynamicLinka
ustawLink Link, który otworzy Twoja aplikacja. Określ adres URL, który może obsłużyć Twoja aplikacja. Zazwyczaj jest to zawartość 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, być odpowiednio zakodowanym adresem URL, używać protokołu HTTP lub HTTPS i nie może być innym łączem dynamicznym.
setDomainUriPrefix Twój prefiks adresu URL łącza dynamicznego, który znajdziesz w konsoli Firebase. Domena łącza dynamicznego wygląda jak w poniższych przykładach:
https://example.com/link
https://example.page.link
Parametry Androida
ustawFallbackUrl Link otwierany, gdy aplikacja nie jest zainstalowana. Określ tę opcję, aby zrobić coś innego niż instalowanie aplikacji ze Sklepu Play, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji.
ustaw wersję minimalną Kod wersji minimalnej wersji aplikacji, która może otworzyć link. Jeśli zainstalowana aplikacja jest starszą wersją, użytkownik zostanie przeniesiony do Sklepu Play w celu aktualizacji aplikacji.
Parametry Ios
ustawAppStoreId Identyfikator Twojej aplikacji w App Store, używany do odsyłania użytkowników do App Store, gdy aplikacja nie jest zainstalowana
ustawFallbackUrl Link otwierany, gdy aplikacja nie jest zainstalowana. Określ tę opcję, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć mobilną wersję internetową treści lub wyświetlić stronę promocyjną aplikacji.
ustawSchemat niestandardowy Niestandardowy schemat adresu URL Twojej aplikacji, jeśli zdefiniowany jako inny niż identyfikator pakietu aplikacji
setIpadFallbackUrl Link do otwarcia na iPadzie, gdy aplikacja nie jest zainstalowana. Określ tę opcję, aby zrobić coś innego niż instalowanie aplikacji ze sklepu App Store, gdy aplikacja nie jest zainstalowana, na przykład otworzyć internetową wersję zawartości lub wyświetlić stronę promocyjną aplikacji.
setIpadBundleId Identyfikator pakietu aplikacji na iOS, którego można używać na iPadach do otwierania łącza. Aplikacja musi być połączona z projektem na stronie Przegląd konsoli Firebase.
ustaw wersję minimalną Numer wersji minimalnej aplikacji, w której można otworzyć link. Ta flaga jest przekazywana do aplikacji po jej otwarciu i aplikacja musi zdecydować, co z nią zrobić.
Parametry nawigacji i informacji
setForcedRedirectEnabled Jeśli ustawione na „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 w bardziej niezawodny sposób odsyłać użytkowników do najbardziej odpowiedniego miejsca docelowego, gdy otwierają łącza dynamiczne w aplikacjach; jeśli jednak spodziewasz się, że łącze dynamiczne będzie otwierane tylko w aplikacjach, które potrafią niezawodnie otwierać łącza dynamiczne bez tej strony, możesz je wyłączyć za pomocą tego parametru. Ten parametr będzie miał wpływ na zachowanie łącza dynamicznego tylko w systemie iOS.
Parametry SocialMetaTag
ustawTytuł Tytuł używany podczas udostępniania łącza dynamicznego w poście społecznościowym.
zestawOpis Opis używany w przypadku udostępniania łącza dynamicznego w poście społecznościowym.
ustawImageUrl Adres URL obrazu powiązanego z tym linkiem. Obraz powinien mieć wymiary co najmniej 300x200 px i mniej niż 300 KB.
Parametry GoogleAnalytics
ustawŹródło
zestawŚredni
ustaw kampanię
ustawTermin
ustaw zawartość
Parametry analityczne Google Play. Te parametry („utm_source”, „utm_medium”, „utm_campaign”, „utm_term”, „utm_content”) są przekazywane do Sklepu Play i dołączane do ładunku łącza.
Parametry ItunesConnectAnalytics
setProviderToken
ustawToken Partnerski
setCampaignToken
Parametry analityczne iTunes Connect. Te parametry („pt”, „at”, „ct”) są przekazywane do App Store.