Вы можете создавать короткие и длинные динамические ссылки с помощью Firebase Dynamic Links Builder API. Этот API принимает длинную динамическую ссылку или объект, содержащий параметры динамической ссылки, и возвращает URL, как в следующих примерах:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Настройка Firebase и Dynamic Links SDK
Чтобы создавать динамические ссылки в приложении Android, необходимо добавить Firebase SDK. Если ваше приложение настроено на получение динамических ссылок, вы уже выполнили эти шаги и можете пропустить этот раздел.
Установите и инициализируйте Firebase SDK для Flutter, если вы ещё этого не сделали.
Чтобы установить плагин Dynamic Links, в корневом каталоге проекта Flutter выполните следующую команду:
flutter pub add firebase_dynamic_linksЕсли вы создаете приложение для Android, откройте страницу Настройки проекта в консоли Firebase и убедитесь, что указали ключ подписи SHA-1. Если вы используете ссылки на приложения, также укажите ключ SHA-256.
В консоли Firebase откройте раздел Dynamic Links.
Если вы ещё не настроили домен для динамических ссылок, нажмите кнопку Начать и следуйте инструкциям.
Если у вас уже есть домен Dynamic Links, запишите его. При программном создании динамических ссылок необходимо указать домен Dynamic Links.

Рекомендуется. В меню "Ещё" (⋮) укажите шаблоны 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,
);
Параметры динамических ссылок
Вы можете использовать Dynamic Link Builder API, чтобы создавать динамические ссылки с любыми поддерживаемыми параметрами. Подробная информация приведена в справочной документации по 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);
Параметры динамических ссылок можно задать следующими способами:
| Параметры DynamicLink | |
|---|---|
| setLink | Ссылка, которую откроет ваше приложение. Укажите URL, который может обработать ваше приложение. Обычно это контент или полезная нагрузка приложения, которая запускает логику приложения (например, начисление пользователю купона или показ экрана приветствия). Ссылка должна быть правильно отформатирована, закодирована с помощью URL, использовать протокол HTTP или HTTPS и не быть динамической ссылкой. |
| setDomainUriPrefix | Префикс URL динамической ссылки, который можно найти в консоли Firebase. Домен динамической ссылки выглядит примерно так:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | Ссылка, которая откроется, если приложение не установлено. Укажите этот параметр, чтобы при отсутствии приложения в Google Play выполнялось другое действие, например открывалась мобильная веб-версия контента или страница с рекламой приложения. |
| setMinimumVersion | Значение versionCode минимальной версии приложения, которая может открыть ссылку. Если установлена более старая версия приложения, пользователь будет перенаправлен в Google Play, чтобы обновить приложение. |
| IosParameters | |
|---|---|
| setAppStoreId | Идентификатор приложения в App Store, который используется для перенаправления пользователей в App Store, если приложение не установлено. |
| setFallbackUrl | Ссылка, которая откроется, если приложение не установлено. Укажите это значение, если хотите, чтобы при отсутствии приложения в App Store выполнялось другое действие, например открывалась мобильная версия контента или страница с рекламой приложения. |
| setCustomScheme | Специальная схема URL приложения, если она отличается от идентификатора пакета приложения. |
| setIpadFallbackUrl | Ссылка для открытия на iPad, если приложение не установлено. Укажите это значение, если хотите, чтобы при отсутствии приложения в App Store выполнялось другое действие, например открывалась веб-версия контента или страница с рекламой приложения. |
| setIpadBundleId | Идентификатор пакета приложения для iOS, которое будет использоваться на iPad для открытия ссылки. Приложение должно быть связано с проектом на странице "Обзор" в консоли Firebase. |
| setMinimumVersion | Номер минимальной версии приложения, в которой можно открыть ссылку. Этот флаг передается приложению при его открытии, и приложение должно решить, что с ним делать. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | Если задано значение "1", при открытии динамической ссылки страница предпросмотра приложения пропускается и выполняется перенаправление в приложение или магазин. Страница предварительного просмотра приложения (включена по умолчанию) позволяет более надежно перенаправлять пользователей в нужное место, когда они открывают динамические ссылки в приложениях. Однако если вы ожидаете, что динамическая ссылка будет открываться только в приложениях, которые могут надежно открывать динамические ссылки без этой страницы, вы можете отключить ее с помощью этого параметра. Этот параметр влияет на поведение динамической ссылки только на устройствах iOS. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | Заголовок, который будет использоваться, когда динамическая ссылка будет опубликована в социальной сети. |
| setDescription | Описание, которое будет использоваться, когда динамическая ссылка будет опубликована в социальной сети. |
| setImageUrl | URL изображения, связанного с этой ссылкой. Размер изображения должен быть не менее 300 x 200 пикселей, а размер файла – не более 300 КБ. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
Параметры аналитики Google Play. Эти параметры (utm_source, utm_medium, utm_campaign, utm_term, utm_content) передаются в Google Play и добавляются в полезную нагрузку ссылки. |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
Параметры аналитики iTunes Connect. Эти параметры (`pt`, `at`, `ct`) передаются в App Store. |