Вы можете создавать короткие или длинные динамические ссылки с помощью 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 SDK для Flutter, если вы еще этого не сделали.
Из корневого каталога вашего проекта Flutter выполните следующую команду, чтобы установить плагин Dynamic Links:
flutter pub add firebase_dynamic_links
Если вы создаете приложение для Android, откройте страницу настроек проекта в консоли Firebase и убедитесь, что вы указали свой ключ подписи SHA-1. Если вы используете App Links, укажите также свой ключ 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,
);
Параметры динамической ссылки
Вы можете использовать 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-адреса Dynamic Link, который вы можете найти в консоли Firebase. Домен Dynamic Link выглядит следующим образом: https://example.com/link https://example.page.link |
AndroidПараметры | |
---|---|
setFallbackUrl | Ссылка для открытия, когда приложение не установлено. Укажите это, чтобы сделать что-то, кроме установки вашего приложения из Play Store, когда приложение не установлено, например, открыть мобильную веб-версию контента или отобразить рекламную страницу для вашего приложения. |
setMinimumVersion | versionCode минимальной версии вашего приложения, которая может открыть ссылку. Если установленное приложение имеет более старую версию, пользователь перенаправляется в Play Store для обновления приложения. |
IosПараметры | |
---|---|
установитьAppStoreId | Идентификатор вашего приложения в App Store, используемый для перенаправления пользователей в App Store, когда приложение не установлено. |
setFallbackUrl | Ссылка для открытия, когда приложение не установлено. Укажите это, чтобы сделать что-то иное, чем установить ваше приложение из App Store, когда приложение не установлено, например, открыть мобильную веб-версию контента или отобразить рекламную страницу для вашего приложения. |
setCustomScheme | Пользовательская схема URL вашего приложения, если она определена как что-то иное, чем идентификатор пакета вашего приложения |
setIpadFallbackUrl | Ссылка для открытия на iPad, когда приложение не установлено. Укажите это, чтобы сделать что-то, кроме установки вашего приложения из App Store, когда приложение не установлено, например, открыть веб-версию контента или отобразить рекламную страницу для вашего приложения. |
setIpadBundleId | Идентификатор пакета приложения iOS для использования на iPad для открытия ссылки. Приложение должно быть подключено к вашему проекту со страницы обзора консоли Firebase. |
setMinimumVersion | Номер версии минимальной версии вашего приложения, которая может открыть ссылку. Этот флаг передается вашему приложению при его открытии, и ваше приложение должно решить, что с ним делать. |
Навигационная информацияПараметры | |
---|---|
setForcedRedirectEnabled | Если установлено значение «1», пропустите страницу предварительного просмотра приложения при открытии Dynamic Link и вместо этого перенаправьте в приложение или магазин. Страница предварительного просмотра приложения (включена по умолчанию) может более надежно отправлять пользователей в наиболее подходящее место назначения при открытии ими Dynamic Links в приложениях; однако, если вы ожидаете, что Dynamic Link будет открываться только в приложениях, которые могут надежно открывать Dynamic Links без этой страницы, вы можете отключить ее с помощью этого параметра. Этот параметр повлияет на поведение Dynamic Link только на iOS. |
SocialMetaTagПараметры | |
---|---|
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, а также добавляются к полезной нагрузке ссылки. |
ItunesConnectAnalyticsПараметры | |
---|---|
setProviderToken setAffiliateToken setCampaignToken | Параметры аналитики iTunes Connect. Эти параметры (`pt`, `at`, `ct`) передаются в App Store. |