Descripción general
El deep linking dirige a los usuarios a una pantalla específica en su aplicación cuando tocan un enlace, ya sea desde un correo electrónico, SMS, sitio web, notificación push o mensaje in-app. Si la aplicación no está instalada, el sistema operativo puede redirigir a los usuarios a la tienda de aplicaciones o a una página web de respaldo. Esta guía cubre:- Tipos de deep links y cuándo usar cada uno
- Configuración de plataforma para Android e iOS
- Manejo de deep links en su aplicación con el SDK de OneSignal
- Comportamiento por canal para push, correo electrónico y mensajes in-app
Para la configuración general de URL y enlaces (URLs de lanzamiento, parámetros UTM, URLs dinámicas, seguimiento de enlaces), consulte URLs, enlaces y deep links.
Requisitos previos
Antes de configurar deep links, necesita:- Una cuenta de OneSignal con una aplicación configurada
- El SDK de OneSignal instalado en su aplicación móvil
- Un dominio que controle, alojado en HTTPS, para Universal Links o App Links
- Acceso al código fuente y la configuración de compilación de su aplicación (Xcode para iOS, Android Studio para Android)
Tipos de deep links
Existen tres mecanismos comunes de deep linking. Cada uno tiene un comportamiento diferente según si la aplicación está instalada.| Tipo | Plataforma | Formato | Aplicación no instalada |
|---|---|---|---|
| Universal Links | iOS 9+ | https://yourdomain.com/path | Abre la URL en Safari |
| App Links | Android 6.0+ | https://yourdomain.com/path | Abre la URL en el navegador |
| Esquemas URI personalizados | iOS y Android | myapp://path | Falla silenciosamente o muestra un error |
https:// estándar, funcionan en todos los canales (push, correo electrónico, SMS) y proporcionan comportamiento de respaldo cuando la aplicación no está instalada. Los esquemas URI personalizados (myapp://) son más simples de configurar, pero no proporcionan comportamiento de respaldo y puede que no funcionen en todos los contextos (por ejemplo, clientes de correo electrónico).
Configuración de Android (App Links)
Use el App Links Assistant de Android Studio para generar la configuración necesaria.Configurar filtros de intent
Añada un filtro de intent a la Activity que debe manejar el deep link:Manejar el intent entrante
Alojar el archivo Digital Asset Links
Genere el archivoassetlinks.json usando el App Links Assistant de Android Studio y alójelo en:
Configuración de iOS (Universal Links)
Los Universal Links de Apple abren su aplicación cuando un usuario toca una URLhttps:// coincidente. Para casos de uso más simples donde se garantiza que la aplicación está instalada, puede usar Esquemas de URL en su lugar.
Habilitar Associated Domains
- En Xcode, seleccione su target → Signing & Capabilities → agregue Associated Domains
- Añada su dominio:
applinks:yourdomain.com
Manejar el Universal Link en su aplicación
Alojar el archivo Apple App Site Association
Cree un archivoapple-app-site-association (AASA) y alójelo en:
TEAMID con su Apple Team ID y com.example.app con su identificador de bundle:
Comportamiento de la URL de lanzamiento en iOS
El SDK de iOS de OneSignal usaopenURL para manejar la URL de lanzamiento (propiedad url). Esto hace que el enlace se abra primero en el navegador y luego redirige de vuelta a la aplicación, lo que puede ser una mala experiencia de usuario.
Para evitar esto, use uno de estos enfoques:
- Use
dataen lugar deurlen el payload de la API y maneje el deep link en su Listener de clic de notificación push - Suprima las URLs de lanzamiento añadiendo
OneSignal_suppress_launch_urlsa suInfo.plistcomo Boolean con valorYES, luego maneje toda la navegación en el listener de clic
Manejar deep links con el SDK de OneSignal
La forma más confiable de manejar deep links de mensajes de OneSignal es usar los listeners de clic del SDK en lugar de depender de la resolución de enlaces a nivel del SO. Esto le da control total sobre la navegación en su aplicación.Listener de clic de notificación push
UseaddClickListener para interceptar clics en notificaciones y enrutar al usuario según la URL del deep link o datos adicionales:
addClickListener() Push.
Listener de clic de mensaje in-app
Use el listener de clic de mensaje in-app para manejar deep links de botones y acciones de mensajes in-app:addClickListener() In-App.
Notificaciones push
Incluya el deep link de una de estas dos formas:| Método | Propiedad de API | Comportamiento |
|---|---|---|
| URL de lanzamiento | url (o app_url solo para móvil) | El SO abre la URL directamente. En iOS, esto abre el navegador primero a menos que se suprima. |
| Datos adicionales (recomendado) | data | La URL se pasa a su listener de clic. Usted controla la navegación completamente. |
Comportamiento por plataforma
- Android: Abre la Activity coincidente directamente a través de App Links
- iOS: Abre Safari, luego la aplicación (a menos que suprima las URLs de lanzamiento y maneje la navegación en el listener de clic)
url, web_url y app_url.
Correos electrónicos
De forma predeterminada, OneSignal reescribe los enlaces de correo electrónico para el seguimiento de clics. Esto cambia la URL, lo que rompe el deep linking porque el SO ya no reconoce el dominio como coincidente con el Associated Domain de su aplicación.Habilitar deep links en correo electrónico
Para preservar los deep links, deshabilite el seguimiento de clics usando uno de estos métodos:- Panel de control: Desmarque Track link clicks en el editor de correo electrónico
- API: Establezca
disable_email_click_tracking: true - Por enlace: Use el filtro Liquid
{{ 'https://yourdomain.com/path' | do_not_track_link }}para deshabilitar el seguimiento en enlaces individuales mientras lo mantiene habilitado para otros

Comportamiento de deep links en correo electrónico
| Escenario | Resultado |
|---|---|
| iOS + Safari + Universal Link + Seguimiento deshabilitado | Abre la aplicación directamente |
| iOS + Safari + Universal Link + Seguimiento habilitado | Abre Safari, solicita abrir la aplicación |
| iOS + cliente de correo no-Safari + Universal Link | Abre App Store si la aplicación no está instalada |
| Android + App Link + Seguimiento deshabilitado | Abre la aplicación directamente |
| Android + App Link + Seguimiento habilitado | Abre el navegador primero, luego la aplicación |
Mensajes in-app
Los deep links en mensajes in-app usan el patrón de listener de clic. Usted establece un identificador de acción personalizado en el editor de mensajes y luego lo maneja en el código de su aplicación.Editor de arrastrar y soltar
- Añada un botón o elemento clicable
- Establezca la acción de clic como Custom Action ID
- Ingrese su URI de deep link como Action Name (por ejemplo,
https://yourdomain.com/promoomyapp://promo)
Editor HTML
Use el métodoopenUrl en la biblioteca JS In-App para activar deep links desde HTML personalizado.
Manejar el clic
Use el listener de clic de mensaje in-app para interceptar la acción y navegar al usuario en su aplicación.Probar deep links
Android
Useadb para probar App Links sin enviar una notificación:
assetlinks.json sea accesible:
iOS
Use la herramienta de validación de Associated Domains de Apple para verificar su archivo AASA. También puede probar Universal Links:- Pegando el enlace en la aplicación Notas
- Manteniendo presionado el enlace para confirmar que aparece la opción “Abrir en [App]”
- Tocando el enlace para verificar que abre su aplicación
Los Universal Links no funcionan cuando se escriben directamente en la barra de direcciones de Safari — deben tocarse desde otra aplicación (Notas, Correo, Mensajes, etc.).
Mensajes de prueba de OneSignal
- Envíe un push de prueba desde el panel de control de OneSignal con una URL de deep link como URL de lanzamiento o en Datos adicionales
- Verifique que la notificación abra la pantalla correcta en su aplicación
- Revise los registros de su listener de clic para confirmar que se recibió la URL o los datos
Resolución de problemas
El deep link de iOS abre Safari en lugar de la aplicación
Este es el problema más común. Posibles causas:- Archivo AASA no alojado correctamente — Verifique que esté en
https://yourdomain.com/.well-known/apple-app-site-associationconContent-Type: application/jsony sin redirecciones - Associated Domains no configurado — Verifique en Xcode → Signing & Capabilities → Associated Domains que incluye
applinks:yourdomain.com - Comportamiento de la URL de lanzamiento — El SDK de iOS de OneSignal usa
openURLpara la propiedadurl, lo que activa el comportamiento de apertura con el navegador primero. Usedata+ listener de clic o suprima las URLs de lanzamiento - Pruebas en Safari — Los Universal Links no se activan desde la barra de direcciones de Safari. Pruebe desde Notas, Correo u otra aplicación.
El deep link de Android abre el navegador
autoVerifyfaltante — Asegúrese de que su filtro de intent incluyaandroid:autoVerify="true"assetlinks.jsonno encontrado — Verifique que el archivo esté enhttps://yourdomain.com/.well-known/assetlinks.jsony devuelva HTTP 200- Discrepancia de huella SHA256 — La huella en
assetlinks.jsondebe coincidir con el certificado de firma de su aplicación. Las compilaciones de depuración y de lanzamiento usan certificados diferentes.
El deep link funciona en push pero no en correo electrónico
El seguimiento de clics de correo electrónico reescribe las URLs, rompiendo la verificación del dominio. Deshabilite el seguimiento de clics para correos electrónicos que contengan deep links.Se recibió el deep link pero la aplicación no navega
- Verifique que su listener de clic esté registrado temprano en el ciclo de vida de la aplicación (por ejemplo, en
Application.onCreate()oAppDelegate.didFinishLaunchingWithOptions) - Compruebe que la URL o el ID de acción coincida con lo que espera su lógica de enrutamiento
- En iOS, confirme que no está confiando en
urlsin suprimir las URLs de lanzamiento — el navegador puede consumir el enlace antes de que se active su listener
Preguntas frecuentes
¿Qué sucede si la aplicación no está instalada?
Con Universal Links (iOS), la URL se abre en Safari como una página web normal. Con App Links (Android), la URL se abre en el navegador predeterminado. En ambos casos, puede configurar su página web para redirigir a la tienda de aplicaciones apropiada. Los esquemas URI personalizados (myapp://) fallan silenciosamente o muestran un error si la aplicación no está instalada.
¿Debo usar URL de lanzamiento o Datos adicionales para deep linking?
Los Datos adicionales (data) son recomendados para deep links móviles porque le dan control total sobre la navegación a través del listener de clic. La URL de lanzamiento (url) es más simple pero tiene limitaciones en iOS (redirección del navegador) y no permite lógica de enrutamiento personalizada.
¿Puedo personalizar los deep links con datos del usuario?
Sí. Use URLs dinámicas con sintaxis Liquid para inyectar propiedades del usuario, etiquetas o datos personalizados en sus URLs de deep link. Por ejemplo:https://yourdomain.com/profile/{{subscription.external_id}}.
¿Puedo usar deep links con esquemas URI personalizados?
Sí. Establezca su esquema personalizado (por ejemplo,myapp://screen) como valor de URL de lanzamiento o Datos adicionales. Los esquemas personalizados funcionan bien para push y mensajes in-app, pero puede que no funcionen en clientes de correo electrónico. Tampoco proporcionan respaldo si la aplicación no está instalada.
¿Los deep links funcionan con OneSignal Journeys?
Sí. Al configurar un paso de mensaje en un Journey, establezca la URL de lanzamiento o los Datos adicionales con su deep link. El comportamiento es el mismo que en un push o mensaje in-app independiente.URLs, enlaces y deep links
URLs de lanzamiento, parámetros UTM, URLs dinámicas y configuración de seguimiento de enlaces.
Referencia del SDK móvil
Referencia completa de la API para listeners de clic y manejo de eventos de notificación.
In-App Click Actions
Configure acciones de clic para botones y elementos de mensajes in-app.
Configuración de push móvil
Configuración de notificaciones push específica de plataforma para Android e iOS.