Puede crear Dynamic Links cortos o largos con la API de Firebase Dynamic Links Builder. Esta API acepta un enlace dinámico largo o un objeto que contiene parámetros de enlace dinámico y devuelve URL como los siguientes ejemplos:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Configurar Firebase y el SDK de Dynamic Links
Antes de poder crear Dynamic Links en su aplicación de Android, debe incluir el SDK de Firebase. Si su aplicación está configurada para recibir Dynamic Links, ya completó estos pasos y puede omitir esta sección.
Si aún no lo ha hecho, agregue Firebase a su proyecto de Android .
Cuando registre su aplicación, especifique su clave de firma SHA-1. Si usa App Links, especifique también su clave SHA-256.
En el archivo Gradle de tu módulo (a nivel de aplicación) (generalmente
<project>/<app-module>/build.gradle
), agrega la dependencia para la biblioteca de Android de Dynamic Links. Recomendamos usar Firebase Android BoM para controlar el control de versiones de la biblioteca.Para una experiencia óptima con Dynamic Links, recomendamos habilitar Google Analytics en su proyecto de Firebase y agregar el SDK de Firebase para Google Analytics a su aplicación.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.
(Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM
Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.
(Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM
Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
- En Firebase console, abra la sección Dynamic Links .
Si aún no ha aceptado los términos de servicio y configurado un dominio para sus Dynamic Links, hágalo cuando se le solicite.
Si ya tienes un dominio de Dynamic Links, toma nota. Debe proporcionar un dominio de Dynamic Links cuando crea Dynamic Links mediante programación.
- Recomendado : especifique los patrones de URL permitidos en sus enlaces profundos y enlaces alternativos. Al hacerlo, evita que terceros no autorizados creen vínculos dinámicos que redirigen desde su dominio a sitios que no controla. Consulte Permitir patrones de URL específicos .
Usar la consola de Firebase
Si desea generar un solo enlace dinámico, ya sea con fines de prueba o para que su equipo de marketing cree fácilmente un enlace que se pueda usar en algo como una publicación en las redes sociales, la forma más sencilla sería visitar la consola de Firebase y crear uno. manualmente siguiendo el paso a paso del formulario.
Crear un vínculo dinámico a partir de parámetros
Para crear un Dynamic Link, cree un nuevo objeto
DynamicLink
con su Builder, especificando los parámetros de Dynamic Link con los métodos del Builder. Luego, llama abuildDynamicLink
obuildShortDynamicLink
.El siguiente ejemplo mínimo crea un enlace dinámico largo a
https://www.example.com/
que se abre con su aplicación de Android en Android y la aplicacióncom.example.ios
en iOS:Kotlin+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
Java
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();
Para crear un Dynamic Link corto, cree un
DynamicLink
de la misma manera y luego llame abuildShortDynamicLink
. La creación de un enlace corto requiere una llamada de red, por lo que en lugar de devolver el enlace directamente,buildShortDynamicLink
devuelve unaTask
, que hace que el enlace corto esté disponible cuando se completa la solicitud. Por ejemplo:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
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 // ... } } });
De forma predeterminada, los enlaces dinámicos cortos se generan con sufijos de enlace de 17 caracteres que hacen que sea muy poco probable que alguien pueda adivinar un enlace dinámico válido. Si, para su caso de uso, no hay ningún problema en que alguien adivine con éxito un enlace corto, es posible que prefiera generar sufijos que sean tan largos como sea necesario para que sean únicos, lo que puede hacer pasando
ShortDynamicLink.Suffix.SHORT
al métodobuildShortDynamicLink
:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Parámetros de enlace dinámico
Puede usar la API Dynamic Link Builder para crear Dynamic Links con cualquiera de los parámetros admitidos. Consulte la referencia de la API para obtener más detalles.
El siguiente ejemplo crea un vínculo dinámico con varios parámetros comunes establecidos:
Kotlin+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!" } }
Java
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()
Puede configurar los parámetros de Dynamic Link con los siguientes métodos:
Parámetros de enlace dinámico establecer enlace El enlace que abrirá su aplicación. Especifique una URL que su aplicación pueda manejar, normalmente el contenido de la aplicación o la carga útil, que inicia la lógica específica de la aplicación (como acreditar al usuario con un cupón o mostrar una pantalla de bienvenida). Este vínculo debe ser una URL bien formateada, estar correctamente codificado como URL, usar HTTP o HTTPS y no puede ser otro vínculo dinámico.
establecerDominioUriPrefijo Su prefijo de URL de enlace dinámico, que puede encontrar en la consola de Firebase. Un dominio de Dynamic Link se parece a los siguientes ejemplos: https://example.com/link https://example.page.link
Parámetros de Android setFallbackUrl El enlace para abrir cuando la aplicación no está instalada. Especifique esto para hacer algo más que instalar su aplicación desde Play Store cuando la aplicación no está instalada, como abrir la versión web móvil del contenido o mostrar una página promocional para su aplicación. setMinimumVersion El versionCode
de versión de la versión mínima de su aplicación que puede abrir el enlace. Si la aplicación instalada es una versión anterior, se lleva al usuario a Play Store para actualizar la aplicación.IosParameters establecerAppStoreId El ID de la tienda de aplicaciones de su aplicación, que se usa para enviar a los usuarios a la tienda de aplicaciones cuando la aplicación no está instalada setFallbackUrl El enlace para abrir cuando la aplicación no está instalada. Especifique esto para hacer algo más que instalar su aplicación desde App Store cuando la aplicación no está instalada, como abrir la versión web móvil del contenido o mostrar una página promocional para su aplicación. establecer esquema personalizado El esquema de URL personalizado de su aplicación, si se define como algo diferente al ID del paquete de su aplicación establecerIpadFallbackUrl El enlace para abrir en iPads cuando la aplicación no está instalada. Especifique esto para hacer algo más que instalar su aplicación desde App Store cuando la aplicación no está instalada, como abrir la versión web del contenido o mostrar una página promocional para su aplicación. setIpadBundleId El ID del paquete de la aplicación de iOS que se usará en iPads para abrir el enlace. La aplicación debe estar conectada a su proyecto desde la página Descripción general de Firebase console. setMinimumVersion El número de versión de la versión mínima de su aplicación que puede abrir el enlace. Esta bandera se pasa a su aplicación cuando se abre, y su aplicación debe decidir qué hacer con ella. Parámetros de información de navegación setForcedRedirectEnabled Si se establece en '1', omita la página de vista previa de la aplicación cuando se abra Dynamic Link y, en su lugar, redirija a la aplicación o tienda. La página de vista previa de la aplicación (habilitada de forma predeterminada) puede enviar a los usuarios al destino más apropiado de manera más confiable cuando abren Dynamic Links en las aplicaciones; sin embargo, si espera que un Dynamic Link se abra solo en aplicaciones que pueden abrir Dynamic Links de manera confiable sin esta página, puede deshabilitarlo con este parámetro. Este parámetro afectará el comportamiento de Dynamic Link solo en iOS. Parámetros de SocialMetaTag establecer título El título que se usará cuando el vínculo dinámico se comparta en una publicación social. conjuntoDescripción La descripción que se usará cuando el vínculo dinámico se comparta en una publicación social. establecerUrlImagen La URL de una imagen relacionada con este enlace. La imagen debe tener al menos 300x200 px y menos de 300 KB. Parámetros de Google Analytics establecerFuente
conjuntoMedio
establecer campaña
establecerTérmino
establecerContenidoParámetros de análisis de Google Play. Estos parámetros ( utm_source
,utm_medium
,utm_campaign
,utm_term
,utm_content
) se transmiten a Play Store y se agregan a la carga del enlace.ItunesConnectAnalyticsParámetros establecerProviderToken
setAfiliadoToken
establecerCampaignTokenParámetros de análisis de iTunes Connect. Estos parámetros ( pt
,at
,ct
) se pasan a la App Store.Acortar un enlace dinámico largo
Para acortar un vínculo dinámico largo, especifique la URL del vínculo dinámico utilizando
setLongLink
en lugar de establecer parámetros con los otros métodos de creación:Kotlin+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 { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
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 // ... } } });
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-01-31 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Falta la información que necesito" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Muy complicado o demasiados pasos" },{ "type": "thumb-down", "id": "outOfDate", "label":"Desactualizado" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problema con las muestras o los códigos" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }]