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