Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Создавайте динамические ссылки на Android

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

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

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

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект Android .

    При регистрации приложения укажите ключ подписи SHA-1. Если вы используете ссылки приложений, также укажите свой ключ SHA-256.

  2. build.gradle , что в build.gradle файле build.gradle уровне проекта build.gradle репозиторий Google Maven как в buildscript и в разделы allprojects .
  3. Добавьте зависимость для библиотеки Android Dynamic Links в файл Gradle вашего модуля (уровня приложения) (обычно app/build.gradle ).

    Для оптимальной работы с динамическими ссылками мы рекомендуем включить Google Analytics в вашем проекте. Кроме того, в рамках настройки Google Analytics вам необходимо добавить в приложение Firebase SDK для Analytics.

    Ява

    implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'

    Котлин + KTX

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
  4. В консоли Firebase откройте раздел Динамические ссылки .
  5. Если вы еще не приняли условия обслуживания и не установили домен для динамических ссылок, сделайте это при появлении соответствующего запроса.

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

  6. Рекомендуется : укажите шаблоны URL, разрешенные в ваших глубоких и резервных ссылках. Таким образом вы предотвращаете создание неавторизованными сторонами динамических ссылок, которые перенаправляют с вашего домена на сайты, которые вы не контролируете. См. Шаблоны URL-адресов в белом списке .

Используйте консоль Firebase

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

Чтобы создать динамическую ссылку, создайте новый объект DynamicLink с его DynamicLink , указав параметры динамической ссылки с помощью методов DynamicLink . Затем вызовите buildDynamicLink или buildShortDynamicLink .

В следующем минимальном примере создается длинная динамическая ссылка на https://www.example.com/ которая открывается вместе с вашим приложением Android на Android и приложением com.example.ios на iOS:

Ява

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();

Uri dynamicLinkUri = dynamicLink.getUri();

Котлин + KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Open links with this app on Android
    androidParameters { }
    // Open links with com.example.ios on iOS
    iosParameters("com.example.ios") { }
}

val dynamicLinkUri = dynamicLink.uri

Чтобы создать короткую динамическую ссылку, создайте динамическую ссылку DynamicLink же образом, а затем вызовите buildShortDynamicLink . Для создания короткой ссылки требуется сетевой вызов, поэтому вместо прямого возврата ссылки buildShortDynamicLink возвращает Task , который делает короткую ссылку доступной после завершения запроса. Например:

Ява

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Котлин + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { result ->
    // Short link created
    val shortLink = result.shortLink
    val flowchartLink = result.previewLink
}.addOnFailureListener {
    // Error
    // ...
}

По умолчанию короткие динамические ссылки создаются с 17-символьными суффиксами ссылок, что делает крайне маловероятным, что кто-то может угадать действительную динамическую ссылку. Если для вашего варианта использования нет ничего плохого в том, что кто-то успешно угадывает короткую ссылку, вы можете предпочесть сгенерировать суффиксы ShortDynamicLink.Suffix.SHORT столько, сколько необходимо для уникальности, что можно сделать, передав buildShortDynamicLink методу buildShortDynamicLink :

Ява

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Котлин + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

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

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

Ява

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
                new DynamicLink.AndroidParameters.Builder("com.example.android")
                        .setMinimumVersion(125)
                        .build())
        .setIosParameters(
                new DynamicLink.IosParameters.Builder("com.example.ios")
                        .setAppStoreId("123456789")
                        .setMinimumVersion("1.0.1")
                        .build())
        .setGoogleAnalyticsParameters(
                new DynamicLink.GoogleAnalyticsParameters.Builder()
                        .setSource("orkut")
                        .setMedium("social")
                        .setCampaign("example-promo")
                        .build())
        .setItunesConnectAnalyticsParameters(
                new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                        .setProviderToken("123456")
                        .setCampaignToken("example-promo")
                        .build())
        .setSocialMetaTagParameters(
                new DynamicLink.SocialMetaTagParameters.Builder()
                        .setTitle("Example of a Dynamic Link")
                        .setDescription("This link works whether the app is installed or not!")
                        .build())
        .buildDynamicLink();  // Or buildShortDynamicLink()

Котлин + KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    androidParameters("com.example.android") {
        minimumVersion = 125
    }
    iosParameters("com.example.ios") {
        appStoreId = "123456789"
        minimumVersion = "1.0.1"
    }
    googleAnalyticsParameters {
        source = "orkut"
        medium = "social"
        campaign = "example-promo"
    }
    itunesConnectAnalyticsParameters {
        providerToken = "123456"
        campaignToken = "example-promo"
    }
    socialMetaTagParameters {
        title = "Example of a Dynamic Link"
        description = "This link works whether the app is installed or not!"
    }
}

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

Параметры DynamicLink
setLink

Ссылка откроется в вашем приложении. Укажите URL-адрес, который может обрабатывать ваше приложение, обычно это контент или полезные данные приложения, которые запускают логику, специфичную для приложения (например, кредитование пользователя купоном или отображение экрана приветствия). Эта ссылка должна быть правильно отформатированным URL-адресом, иметь правильную кодировку URL, использовать HTTP или HTTPS и не может быть другой динамической ссылкой.

setDomainUriPrefix Префикс URL-адреса динамической ссылки, который вы можете найти в консоли Firebase. Домен с динамической ссылкой выглядит следующим образом:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl Ссылка, которую нужно открыть, когда приложение не установлено. Укажите это, чтобы делать что-то, кроме установки приложения из Play Store, когда приложение не установлено, например открывать мобильную веб-версию контента или отображать рекламную страницу для вашего приложения.
setMinimumVersion versionCode минимальной версии вашего приложения, которая может открывать ссылку. Если установленное приложение более ранней версии, пользователь перенаправляется в Play Store для обновления приложения.
IosParameters
setAppStoreId Идентификатор вашего приложения в App Store, используемый для отправки пользователей в App Store, когда приложение не установлено.
setFallbackUrl Ссылка, которую нужно открыть, когда приложение не установлено. Укажите это, чтобы делать что-то, кроме установки приложения из App Store, когда приложение не установлено, например открывать мобильную веб-версию содержимого или отображать рекламную страницу для вашего приложения.
setCustomScheme Пользовательская схема URL-адресов вашего приложения, если она определена как нечто иное, чем идентификатор пакета вашего приложения.
setIpadFallbackUrl Ссылка для открытия на iPad, когда приложение не установлено. Укажите это, чтобы делать что-то, кроме установки приложения из App Store, когда приложение не установлено, например открывать веб-версию контента или отображать рекламную страницу для вашего приложения.
setIpadBundleId Идентификатор пакета приложения iOS, который будет использоваться на iPad для открытия ссылки. Приложение должно быть подключено к вашему проекту на странице обзора консоли Firebase.
setMinimumVersion Номер версии минимальной версии вашего приложения, в которой можно открыть ссылку. Этот флаг передается вашему приложению при его открытии, и ваше приложение должно решить, что с ним делать.
NavigationInfoParameters
setForcedRedirectEnabled Если установлено значение «1», пропускать страницу предварительного просмотра приложения при открытии динамической ссылки и вместо этого выполнять перенаправление в приложение или магазин. Страница предварительного просмотра приложения (включена по умолчанию) может более надежно отправлять пользователей в наиболее подходящее место назначения, когда они открывают динамические ссылки в приложениях; однако, если вы ожидаете, что динамическая ссылка будет открываться только в приложениях, которые могут надежно открывать динамические ссылки без этой страницы, вы можете отключить ее с помощью этого параметра. Примечание. Страница предварительного просмотра приложения в настоящее время отображается только на iOS, но со временем может быть отображена на Android. Этот параметр повлияет на поведение динамической ссылки на обеих платформах.
SocialMetaTagParameters
setTitle Заголовок, который следует использовать, когда динамическая ссылка публикуется в социальной публикации.
setDescription Описание, которое следует использовать, когда динамическая ссылка публикуется в социальной публикации.
setImageUrl URL-адрес изображения, связанного с этой ссылкой. Изображение должно быть не менее 300x200 пикселей и не более 300 КБ.
GoogleAnalyticsParameters
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.

Чтобы сократить длинную динамическую ссылку, укажите URL-адрес динамической ссылки с помощью setLongLink вместо настройки параметров с помощью других методов построения:

Ява

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios"))
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Котлин + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    longLink = Uri.parse("https://example.page.link/?link=" +
            "https://www.example.com/&apn=com.example.android&ibn=com.example.ios")
}.addOnSuccessListener { result ->
    // Short link created
    val shortLink = result.shortLink
    val flowchartLink = result.previewLink
}.addOnFailureListener {
    // Error
    // ...
}