Вы можете создавать короткие и длинные динамические ссылки с помощью API Firebase Dynamic Links Builder. Этот API принимает как длинные динамические ссылки, так и объекты с параметрами динамических ссылок и возвращает URL-адреса, подобные следующим:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Настройка Firebase и Dynamic Links SDK
Прежде чем создавать динамические ссылки в приложении для Android, необходимо подключить Firebase SDK. Если ваше приложение настроено на использование динамических ссылок, вы уже выполнили эти шаги и можете пропустить этот раздел.
Установите и инициализируйте Firebase SDKs для Flutter, если вы еще этого не сделали.
Из корневого каталога вашего проекта Flutter выполните следующую команду, чтобы установить плагин Dynamic Links:
flutter pub add firebase_dynamic_links
Если вы разрабатываете приложение для Android, откройте страницу настроек проекта в консоли Firebase и убедитесь, что вы указали ключ подписи SHA-1. Если вы используете App Links, укажите также ключ SHA-256.
В консоли Firebase откройте раздел Динамические ссылки .
Если вы еще не настроили домен для динамических ссылок, нажмите кнопку «Начать» и следуйте инструкциям.
Если у вас уже есть домен 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,
);
Параметры динамической ссылки
Вы можете использовать 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 | |
---|---|
setLink | Ссылка, которую откроет ваше приложение. Укажите URL-адрес, который может обрабатывать ваше приложение. Обычно это контент или полезная нагрузка приложения, которая запускает специфичную для приложения логику (например, предоставление пользователю купона или отображение приветственного экрана). Эта ссылка должна иметь корректный формат URL, быть правильно закодирована в URL, использовать протокол HTTP или HTTPS и не может быть другой динамической ссылкой. |
setDomainUriPrefix | Префикс URL-адреса динамической ссылки, который можно найти в консоли Firebase. Домен динамической ссылки выглядит следующим образом: https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Ссылка, которая открывается, когда приложение не установлено. Укажите этот параметр, чтобы выполнить действие, отличное от установки приложения из Play Маркета, когда оно не установлено, например, открыть мобильную веб-версию контента или отобразить рекламную страницу вашего приложения. |
setMinimumVersion | Код версии (versionCode) минимальной версии вашего приложения, в которой можно открыть ссылку. Если установлена более старая версия приложения, пользователь перейдет в Play Маркет для обновления. |
IosParameters | |
---|---|
setAppStoreId | Идентификатор вашего приложения в App Store, используемый для перенаправления пользователей в App Store, когда приложение не установлено. |
setFallbackUrl | Ссылка, которая открывается, когда приложение не установлено. Укажите этот параметр, чтобы выполнить действие, отличное от установки приложения из App Store, когда оно не установлено, например, открыть мобильную веб-версию контента или отобразить рекламную страницу вашего приложения. |
setCustomScheme | Пользовательская схема URL вашего приложения, если она определена как нечто иное, чем идентификатор пакета вашего приложения |
setIpadFallbackUrl | Ссылка, которая открывается на iPad, если приложение не установлено. Укажите этот параметр, чтобы приложение выполняло какие-либо действия, помимо установки из App Store, когда оно не установлено, например, открывало веб-версию контента или отображало рекламную страницу вашего приложения. |
setIpadBundleId | Идентификатор пакета приложения iOS, который будет использоваться на iPad для открытия ссылки. Приложение должно быть подключено к вашему проекту на странице «Обзор» консоли Firebase. |
setMinimumVersion | Номер минимальной версии вашего приложения, в которой может открыться ссылка. Этот флаг передаётся приложению при открытии, и оно само решает, что с ним делать. |
Параметры навигации | |
---|---|
setForcedRedirectEnabled | Если установлено значение «1», страница предварительного просмотра приложения будет пропущена при открытии динамической ссылки и вместо этого будет перенаправлена в приложение или магазин. Страница предварительного просмотра приложения (включена по умолчанию) может более надёжно перенаправлять пользователей в наиболее подходящее место назначения при открытии динамических ссылок в приложениях. Однако, если вы ожидаете, что динамическая ссылка будет открываться только в приложениях, которые могут открывать динамические ссылки без этой страницы, вы можете отключить её с помощью этого параметра. Этот параметр влияет на поведение динамической ссылки только в iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Заголовок, который будет использоваться при публикации динамической ссылки в социальной сети. |
setDescription | Описание, которое будет использоваться при публикации динамической ссылки в социальной сети. |
setImageUrl | URL-адрес изображения, связанного с этой ссылкой. Изображение должно быть размером не менее 300x200 пикселей и весом менее 300 КБ. |
Параметры GoogleAnalytics | |
---|---|
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. |