Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Создание динамических ссылок в приложении Flutter

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Вы можете создавать короткие или длинные динамические ссылки с помощью Firebase Dynamic Links Builder API. Этот API принимает либо длинную динамическую ссылку, либо объект, содержащий параметры динамической ссылки, и возвращает URL-адреса, подобные следующим примерам:

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

Прежде чем вы сможете создавать динамические ссылки в своем приложении для Android, вы должны включить Firebase SDK. Если ваше приложение настроено на получение динамических ссылок, вы уже выполнили эти шаги и можете пропустить этот раздел.

  1. Установите и инициализируйте пакеты Firebase SDK для Flutter , если вы еще этого не сделали.

  2. В корневом каталоге вашего проекта Flutter выполните следующую команду, чтобы установить плагин Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. Если вы создаете приложение для Android, откройте страницу настроек проекта в консоли Firebase и убедитесь, что вы указали ключ подписи SHA-1. Если вы используете ссылки на приложения, также укажите свой ключ SHA-256.

  4. В консоли Firebase откройте раздел « Динамические ссылки ».

    1. Если вы еще не настроили домен для своих динамических ссылок, нажмите кнопку « Начать » и следуйте инструкциям.

      Если у вас уже есть домен Dynamic Links, обратите на это внимание. Вам необходимо предоставить домен динамических ссылок при программном создании динамических ссылок.

    2. Рекомендуется . В меню «Дополнительно» (⋮) укажите шаблоны URL, разрешенные для ссылок на контент и резервных ссылок. Тем самым вы предотвращаете создание динамических ссылок неавторизованными сторонами, которые перенаправляют вас с вашего домена на сайты, которые вы не контролируете.

      См. раздел Разрешить определенные шаблоны URL .

Чтобы создать динамическую ссылку, создайте новый объект DynamicLinkParameters и передайте его в buildLink() или buildShortLink() .

В следующем минимальном примере создается длинная динамическая ссылка на https://www.example.com/ , которая открывается с помощью com.example.app.android на Android и приложения com.example.app.ios на 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);

Чтобы создать короткую динамическую ссылку, передайте объект DynamicLinkParameters в buildShortLink() . Для создания короткой ссылки требуется сетевой вызов. Например:

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);

По умолчанию короткие динамические ссылки генерируются с суффиксами длиной всего несколько символов. Хотя это делает ссылки более компактными, это также дает возможность того, что кто-то может угадать действительную короткую ссылку. Часто нет ничего плохого в том, что кто-то так делает, потому что ссылка ведет к общедоступной информации.

Однако, если ваши короткие ссылки ведут к пользовательской информации, вам следует создать более длинные ссылки с 17-символьными суффиксами, которые делают очень маловероятным, что кто-то сможет угадать действительную динамическую ссылку. Для этого передайте ShortDynamicLinkType.unguessable в метод buildShortLink() :

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

Вы можете использовать API Dynamic Link Builder для создания динамических ссылок с любым из поддерживаемых параметров. См. справочник по API .

В следующем примере создается динамическая ссылка с несколькими наборами общих параметров:

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);

Вы можете установить параметры Dynamic Link следующими способами:

Параметры DynamicLink
установить ссылку Ссылка, которую откроет ваше приложение. Укажите URL-адрес, который может обрабатывать ваше приложение, обычно содержимое или полезные данные приложения, которые инициируют логику приложения (например, начисление пользователю купона или отображение экрана приветствия). Эта ссылка должна представлять собой правильно отформатированный URL-адрес, правильно закодированный URL-адрес, использовать HTTP или HTTPS и не может быть другой динамической ссылкой.
setDomainUriPrefix Префикс URL-адреса динамической ссылки, который вы можете найти в консоли Firebase. Домен Dynamic Link выглядит следующим образом:
https://example.com/link
https://example.page.link
AndroidПараметры
setFallbackURL Ссылка для открытия, когда приложение не установлено. Укажите это, чтобы сделать что-то, кроме установки вашего приложения из Play Store, когда приложение не установлено, например открыть мобильную веб-версию контента или отобразить рекламную страницу для вашего приложения.
setMinimumVersion versionCode минимальной версии вашего приложения, которая может открыть ссылку. Если установленное приложение является более старой версией, пользователь перенаправляется в Play Store для обновления приложения.
IosПараметры
setAppStoreId Идентификатор App Store вашего приложения, используемый для отправки пользователей в App Store, когда приложение не установлено.
setFallbackURL Ссылка для открытия, когда приложение не установлено. Укажите это, чтобы сделать что-то кроме установки вашего приложения из App Store, когда приложение не установлено, например открыть мобильную веб-версию содержимого или отобразить рекламную страницу для вашего приложения.
setCustomScheme Настраиваемая схема URL-адреса вашего приложения, если она определена как нечто отличное от идентификатора пакета вашего приложения.
setIpadFallbackUrl Ссылка для открытия на iPad, когда приложение не установлено. Укажите это, чтобы сделать что-то, кроме установки вашего приложения из App Store, когда приложение не установлено, например открыть веб-версию содержимого или отобразить рекламную страницу для вашего приложения.
setIpadBundleId Идентификатор пакета приложения iOS для использования на iPad для открытия ссылки. Приложение должно быть подключено к вашему проекту на странице обзора консоли Firebase.
setMinimumVersion Номер версии минимальной версии вашего приложения, которая может открыть ссылку. Этот флаг передается вашему приложению при его открытии, и ваше приложение должно решить, что с ним делать.
НавигацияИнформацияПараметры
setForcedRedirectEnabled Если установлено значение «1», пропустить страницу предварительного просмотра приложения при открытии динамической ссылки и вместо этого перенаправить в приложение или магазин. Страница предварительного просмотра приложения (включена по умолчанию) может более надежно направлять пользователей в наиболее подходящее место назначения, когда они открывают динамические ссылки в приложениях; однако, если вы ожидаете, что динамическая ссылка будет открываться только в приложениях, которые могут надежно открывать динамические ссылки без этой страницы, вы можете отключить ее с помощью этого параметра. Этот параметр повлияет на поведение Dynamic Link только на iOS.
SocialMetaTagParameters
setTitle Заголовок, используемый при публикации динамической ссылки в публикации в социальной сети.
setDescription Описание, используемое при публикации динамической ссылки в публикации в социальной сети.
setImageUrl URL-адрес изображения, связанного с этой ссылкой. Размер изображения должен быть не менее 300x200 пикселей и не более 300 КБ.
Google AnalyticsПараметры
setSource
setMedium
setCampaign
setTerm
setContent
Параметры аналитики Google Play. Эти параметры («utm_source», «utm_medium», «utm_campaign», «utm_term», «utm_content») передаются в Play Store, а также добавляются к полезной нагрузке ссылки.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Параметры аналитики iTunes Connect. Эти параметры (`pt`, `at`, `ct`) передаются в App Store.