Los enlaces universales en iOS proporcionan una forma fluida de dirigir a los usuarios desde un sitio web a contenido específico dentro de su aplicación. Sin embargo, es fundamental comprender una limitación clave con respecto a las redirecciones: los enlaces universales generalmente no funcionan con redirecciones automáticas debido a las medidas de seguridad implementadas por Apple. Si se hace clic en un enlace universal y luego se redirige automáticamente, iOS normalmente abrirá la página web alternativa en Safari en lugar de iniciar su aplicación.
Esto significa que, si su intención es que un enlace redirigido abra su aplicación, es probable que falle y el usuario sea redirigido a la página web en su navegador.
A pesar de esta limitación, configurar enlaces universales es esencial para una buena experiencia de usuario. A continuación, le indicamos cómo implementarlos:
1. Habilita los dominios asociados en tu proyecto Xcode
En primer lugar, debes indicar a tu aplicación iOS que pretende admitir enlaces universales. * Abre tu proyecto en Xcode. * Selecciona el destino de tu aplicación. * Ve a la pestaña «Signing & Capabilities» (Firma y capacidades). * Haz clic en el botón «+ Capability» (Capacidad) y selecciona «Associated Domains» (Dominios asociados).
* Añade tus dominios con el prefijo applinks: (por ejemplo, applinks:tudominio.com).
2. Crea y aloja el archivo apple-app-site-association (AASA)
Este archivo JSON le indica a iOS qué URL de tu sitio web deben abrirse en tu aplicación.
* Cree el archivo: Asígnele el nombre apple-app-site-association (sin ninguna extensión de archivo). * Contenido: El archivo debe contener JSON que especifique el ID del paquete de su aplicación y las rutas que puede manejar.
```json
{ "applinks": { "apps": [], "details": [
{ "appID": "YOUR_TEAM_ID.YOUR_BUNDLE_ID",
«paths»: [ «/path/to/content/*», «/another/path/*», «*» ] } ]
} } ```
* Reemplazar `YOUR_TEAM_ID` por tu Apple Developer Equipo ID y `YOUR_BUNDLE_ID` con el identificador de paquete de su aplicación.
* La matriz `paths` especifica qué URL puede gestionar tu aplicación. Puedes utilizar comodines (por ejemplo, `*`) para hacer coincidir varias rutas. - Aloja el archivo: Sube este archivo a la raíz de tu servidor web o dentro de un directorio
.well-known(por ejemplo,https://yourdomain.com/.well-known/apple-app-site-association).- Debe ser accesible a través de HTTPS y sin redireccionamientos.
- Asegúrate de que el tipo de contenido sea
application/json.
3. Gestiona los enlaces universales en tu aplicación
Tu aplicación debe responder cuando se inicia a través de un enlace universal.
* Implemente el método application(_:continue:restorationHandler:) en su archivo AppDelegate.swift.
* Dentro de este método, puede extraer la URL y sus parámetros para dirigir al usuario al contenido correcto dentro de su aplicación.
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL else {
return false } // Manejar la URL entrante, e.g., analizar su ruta and query parameters print("Incoming URL: \(incomingURL)") // Ejemplo: Navegar a una pantalla pantalla basada en la URL
// handleUniversalLink(url: incomingURL) return true
} ``` Consideraciones sobre redireccionamientos y soluciones alternativas
- Solo clics directos: los enlaces universales están diseñados para funcionar cuando un usuario los pulsa directamente.
- Automatización y seguimiento del marketing: si utilizas herramientas de automatización del marketing o necesitas medir los clics que implican redireccionamientos, es posible que los usuarios sean enviados a la URL alternativa web en lugar de a tu aplicación. En tales casos, considera la posibilidad de utilizar un proveedor de enlaces profundos que ofrezca soluciones para la medición de la atribución y se integre directamente con los proveedores de servicios de correo electrónico.
- Flecha de navegación de Safari: iOS puede mostrar una flecha de navegación en Safari que, si se pulsa, puede llevar al usuario al sitio web asociado, incluso si la aplicación está instalada. Si ese sitio web redirige a la App Store, puede crear una experiencia de usuario confusa.
- Mecanismo de reserva: Si su aplicación no está instalada, el enlace universal abrirá la URL especificada en Safari. Puede implementar una reserva en su sitio web para redirigir a los usuarios a la App Store si no se detecta la aplicación.
Prueba de enlaces universales
- Instala tu aplicación en un dispositivo iOS físico o en un simulador.
- Envíate el enlace universal por correo electrónico o alójalo en una página web.
- Pulsa el enlace desde el cliente de correo electrónico o el navegador web del dispositivo.
- Comprueba que el enlace abre tu aplicación directamente en el contenido deseado. Si la aplicación no está instalada, comprueba si redirige correctamente a la URL alternativa.
- Ten en cuenta que la red de distribución de contenidos (CDN) de Apple puede tardar algún tiempo (hasta 24 horas) en recuperar tu archivo AASA.