Enlaces profundos
Navega a rutas cuando la aplicación recibe una nueva URL.
Los enlaces profundos (deep links) son enlaces que no solo abren una aplicación, sino que también llevan al usuario a una ubicación específica "profunda" dentro de la aplicación. Por ejemplo, un enlace profundo de un anuncio de un par de zapatillas podría abrir una aplicación de compras y mostrar la página del producto para esos zapatos en particular.
Flutter admite enlaces profundos en iOS, Android y la web.
Al abrir una URL se muestra esa pantalla en tu aplicación.
Con los siguientes pasos,
puedes iniciar y mostrar rutas utilizando rutas nombradas
(ya sea con el parámetro routes
o
onGenerateRoute), o mediante
el uso del widget Router.
Si estás ejecutando la aplicación en un navegador web, no se requiere ninguna configuración
adicional. Las rutas se manejan de la misma manera que un enlace profundo de iOS o Android.
Por defecto, las aplicaciones web leen la ruta del enlace profundo desde el fragmento de la URL usando
el patrón: /#/path/to/app/screen, pero esto se puede cambiar
configurando la estrategia de URL para tu aplicación.
Si prefieres el aprendizaje visual, mira el siguiente video:
Primeros pasos
#Para comenzar, consulta nuestras guías prácticas (cookbooks) para Android e iOS:
Migración desde enlaces profundos basados en plugins
#Si has escrito un plugin para manejar enlaces profundos, como se describe en
Deep Links and Flutter applications
(un artículo gratuito en Medium),
debes desactivar el manejador de enlaces profundos por defecto de Flutter.
Para hacer esto, establece FlutterDeepLinkingEnabled en false en Info.plist
o
flutter_deeplinking_enabled en false en AndroidManifest.xml.
Comportamiento
#El comportamiento varía ligeramente según la plataforma y si la aplicación está iniciada y en ejecución.
| Plataforma / Escenario | Uso de Navigator | Uso de Router |
|---|---|---|
| iOS (no iniciada) | La aplicación recibe initialRoute ("/") y poco después recibe un pushRoute | La aplicación recibe initialRoute ("/") y poco después usa el RouteInformationParser para analizar la ruta y llamar a RouterDelegate.setNewRoutePath, lo que configura el Navigator con la Page correspondiente. |
| Android - (no iniciada) | La aplicación recibe initialRoute que contiene la ruta ("/deeplink") | La aplicación recibe initialRoute ("/deeplink") y la pasa al RouteInformationParser para analizar la ruta y llamar a RouterDelegate.setNewRoutePath, lo que configura el Navigator con las Pages correspondientes. |
| iOS (iniciada) | Se llama a pushRoute | La ruta es analizada y el Navigator se configura con un nuevo conjunto de Pages. |
| Android (iniciada) | Se llama a pushRoute | La ruta es analizada y el Navigator se configura con un nuevo conjunto de Pages. |
Al usar el widget Router,
tu aplicación tiene la capacidad de reemplazar el
conjunto actual de páginas cuando se abre un nuevo enlace profundo
mientras la aplicación se está ejecutando.
Para aprender más
#- Aprendiendo el nuevo sistema de navegación y enrutamiento de Flutter ofrece una introducción al sistema Router.
- El video Inmersión profunda en los enlaces profundos de Flutter del Google I/O 2023
- Enlaces profundos en Flutter: La guía definitiva, un tutorial paso a paso que muestra cómo implementar enlaces profundos en Flutter.
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.