10 ejemplos para cablear esquemas personalizados, enlaces universales e integración de Expo - la base que toda app SDK 57 necesita antes de enrutar usuarios desde email, SMS, códigos QR o notificaciones push a la pantalla correcta.
Los enlaces profundos para móviles llegan en dos formas. Elige según si necesitas enrutamiento HTTPS verificado o un camino solo para desarrollo rápido.
┌──────────────────────────────────────────────────────────────────────────┐│ Tipo │ URL de ejemplo │ Se abre sin solicitud │├─────────────────────┼────────────────────────────────┼──────────────────────┤│ Esquema personalizado│ myapp://orders/42 │ Sí (si app está instalada) ││ Enlace Universal/App │ https://shop.example.com/o/42 │ Sí (cuando está verificado) ││ Alternativa web │ https://shop.example.com/o/42 │ Navegador (sin app) │└──────────────────────────────────────────────────────────────────────────┘
Los esquemas personalizados son los más rápidos para enviar - registra scheme en app.config.ts y maneja rutas en el código
Los Enlaces Universales/App Links requieren archivos de verificación alojados en el servidor pero se sienten nativos - sin hoja de desambiguación en iOS
Los emails de marketing y las publicaciones sociales deberían preferir enlaces HTTPS con alternativas web para usuarios sin la app
Los enlaces profundos HTTPS necesitan una asociación de dominio - agrega associatedDomains (iOS) e intentFilters (Android) a través de plugins de configuración o app.config.ts.
Usa npx uri-scheme para disparar enlaces a simuladores y dispositivos conectados sin reconstruir páginas de marketing.
# Simulador de iOSnpx uri-scheme open "shopapp://orders/42?ref=cli" --ios# Emulador de Android / dispositivonpx uri-scheme open "shopapp://orders/42?ref=cli" --android
Instala uri-scheme globalmente o usa npx - no se requieren cambios de código de app
Prueba inicio en frío matando la app primero, luego ejecutando el comando
Prueba inicio cálido con la app en segundo plano - confirma la ruta del listener de eventos
Los enlaces universales necesitan Safari/Chrome o xcrun simctl openurl con https:// - mira Matriz de Prueba de Deep Link
Los banners inteligentes (apple-itunes-app) mejoran la transferencia web a app en iOS cuando los enlaces universales aún no están verificados
El timeout de alternativa previene que los usuarios se queden mirando una página en blanco cuando la app no está instalada
Los enlaces profundos diferidos (instalación - primer abierta) necesitan SDKs de atribución o plomería personalizada de install-referrer - mira Deferred Deep Links
Mantén las rutas web y de app alineadas - /orders/42 debería significar la misma entidad en ambas superficies
¿Necesito tanto un esquema personalizado como enlaces universales?
Solo esquema está bien para OAuth, prueba de desarrollo y herramientas internas.
Las apps de consumidor en producción deberían agregar enlaces HTTPS verificados para email y web - los esquemas muestran UI de desambiguación y se rompen cuando otra app registra el mismo esquema.
Mantén el esquema como alternativa durante el lanzamiento de enlace universal.
¿Expo Go maneja mi esquema de producción?
Expo Go usa el esquema exp:// - tus enlaces shopapp:// abren el cliente de desarrollo o una compilación independiente, no Expo Go.
Prueba enlaces profundos en expo-dev-client o compilaciones de vista previa con el ID de paquete real antes del lanzamiento.
¿Puedo cambiar el esquema después de la presentación de App Store?
Sí, pero los enlaces de marketing existentes se rompen hasta que envíes un nuevo binario y actualices cada URL saliente.
Trata los cambios de esquema como un cambio de API importante - versiona tus enlaces o mantén redirecciones en el host web.
¿Quién analiza la URL - Expo Router o expo-linking?
Expo Router mapea rutas a pantallas cuando se usa enrutamiento basado en archivos - opción predeterminada.
Linking.parse es para análisis, configuraciones heredadas de React Navigation o URLs que no son rutas (p. ej. shopapp://reset-password?token=…).
¿Por qué mi enlace abre el navegador en lugar de la app?
La verificación del enlace Universal/App falló - verifica el alojamiento de AASA y assetlinks.json.
El usuario mantuvo presionado y eligió "Abrir en Safari" - iOS recuerda por dominio.
El enlace usa http:// en lugar de https:// - la verificación requiere TLS.