well test site links link known from example domains association associated apple app ios ios9 deep-linking url-scheme ios-universal-links

ios - test - well known universal links



Enlaces universales en iOS vs. enlaces profundos(esquemas de URL) (4)

TL, DR:

¿Cuál es realmente la diferencia (s) entre Universal Link y los Esquemas de URL? ¿Es que un enlace universal es solo para hipervínculos en sitios web, y las aplicaciones de correo o mensajes?

Un enlace universal es una URL específica de Apple basada en el sistema operativo que vincula la URL de un sitio web con un esquema y una ruta URI específicos de la aplicación. No está disponible en todas las aplicaciones, ya que la aplicación tiene que soportar el comportamiento. Hay una buena lista de dónde y cómo funcionan actualmente los UL ( here ).

También hay muchos problemas con los UL que describo al final. Ver larga lectura a continuación.

¿Los enlaces universales reemplazan los esquemas de URL?

No. Son un reemplazo forzado para esquemas URI y rutas en iOS Safari. Debe y debe seguir siendo compatible con el esquema de URI y las rutas de su aplicación, ya que Android y iOS Chrome siguen utilizando esta tecnología, al igual que todas las principales clases de proveedores de enlaces desde la atribución hasta el correo electrónico.

¿Son los enlaces universales un tipo de enlace profundo?

Si y no. Los enlaces universales en sí mismos no son enlaces de enlace universales, por ejemplo, no pueden enrutar el proceso de instalación. Pero cuando el usuario tiene la aplicación, puede desconectar. Es mejor pensar en todos los enlaces en términos de lo que pueden y no pueden hacer, en lugar de clasificar las URL en "enlaces de enlaces" y "no en enlaces de enlaces".

Muchos enlaces exhiben el comportamiento de vincularse dependiendo de si el usuario tiene la aplicación y el contexto (navegador, aplicación, SO, versión de SO, etc.) Cambie el marco de pensamiento.

Seguimiento de enlaces universales

A lo largo del documento a continuación, describo todos los aspectos de Universal Links. Es importante señalar que continueUserActivity informará la URL de referencia de un enlace universal, por lo que puede usar esto para abrir los atributos.

Debido a que un UL no es un enlace normal, si tiene redirecciones, eso lo romperá. Del mismo modo, si desactivas las redirecciones, el servidor de clics en el sitio web que tengas nunca será afectado. Esto es para una discusión diferente, pero es importante tener en cuenta.

Mucha información útil que he curado a continuación en Universal Links si estás interesado.

Esquemas URI

La mayoría de la gente está familiarizada con los esquemas de URI. Un URI es un indicador de recursos universal ( link ). Los URI se pueden asignar a aplicaciones móviles. Al escribir un URI, como airbnb: //, se intentará ubicar el recurso de aplicación Airbnb en el dispositivo.

Antes de que existieran los enlaces universales o los enlaces de aplicaciones (es decir, antes de iOS 9.3 / Android 6.0), habría que usar un "esquema de URI personalizado" y la ruta en la forma de airbnb://d/listing/530250 para vincular en profundidad a usuario a contenido específico en una aplicación móvil (en este caso, un listado). Sin embargo, esto no era seguro ni manejaba el caso cuando un usuario no tenía la aplicación instalada (no había ningún respaldo). La forma en que funcionaría la mayoría de los socios de atribución (Appsflyer, Kochava, Button, Yozio, Branch, etc.) es que proporcionarán un enlace que manejó esto.

Cuando el usuario visita la página de esta URL, habría algún javascript que configuraría un temporizador y luego intentaría iniciar el Esquema URI desde el navegador con un simple javascript:

window.location.href(...)

Si la aplicación no se abrió antes de que expirara el temporizador, entonces el proveedor podría asumir que el teléfono no contenía la aplicación, y en su lugar, algunos javascript dispararían para abrir la URL de iTunes o Android. Este mecanismo se basó en el bloqueo de javascript en el navegador.

En iOS 9.3, Apple eliminó el bloqueo de JavaScript en Safari ( link ). El resultado final es que cada vez que intentaba abrir una aplicación con un esquema de URI en Safari, vería un gran mensaje de error que decía "No se puede abrir la página". Esta fue una experiencia terrible para el usuario y condujo a la aplicación del nuevo sistema de Apple. , Apple Universal Links.

Apple Universal Links y Android App Links son esencialmente URL web (por ejemplo, https://www.airbnb.com/rooms/530250 ) que están destinadas a dirigir a los usuarios a la ubicación óptima en la web o la aplicación. Tenían la intención de llevar a los usuarios a la web móvil si el usuario no tiene la aplicación, pero si es así, lleve al usuario al contenido exacto de la aplicación. En un dispositivo móvil, si el usuario sigue un enlace universal y tiene nuestra aplicación instalada, puede dirigirse a la aplicación; de lo contrario, el sistema se interrumpirá y atraerá al visitante a nuestro sitio web móvil (con algunas excepciones, consulte a continuación).

Para que un enlace sea verdaderamente universal, se requiere que la función vinculada esté habilitada en la web, iOS y Android, y que todas las aplicaciones compartan la misma ruta de recursos.

Apple Universal Links y enlaces de aplicaciones de Android

Apple Universal Links (iOS) y Android App Links (Android) son esencialmente el mismo concepto, pero a menudo se intercambian, o se confunden con otros mecanismos de enrutamiento. Es importante ser explícito cuando se habla de estos conceptos, de lo contrario, corre el riesgo de confundir o confundir diferentes tecnologías que operan de manera muy diferente.

Específicamente, los enlaces universales de Apple son un estándar de Apple que se implementa en el sistema operativo (SO) de iPhone, lo que permite a un usuario tocar un enlace y recibirlo de inmediato en la aplicación, si lo tiene. Los enlaces universales de Apple no tienen redirecciones. Es una configuración de sistema especial con cierto grado de complejidad técnica. Cuando el usuario toca el enlace, se realiza una llamada del servidor de ida y vuelta a Apple y el sistema operativo abre la aplicación inmediatamente sin abrir el navegador ni cargar la URL. Más sobre cómo funciona esto a continuación.

Android App Links es el sistema de enlace equivalente que se configura en Android.

Universal Links comienza con un "Archivo de Asociación de Sitios de Aplicaciones de Apple" (AASA) para cada uno de sus dominios.

Es importante tener en cuenta que casi todas las compañías de AASA se alojan en su dominio principal, seguido de "/ apple-app-site-association"

Algunos ejemplos:

https://www.jet.com/apple-app-site-association https://www.pinterest.com/apple-app-site-association

Si hace clic en estas URL, se descargará AASA de la compañía. Un ejemplo de AASA está en el lado derecho. Algunas cosas notables incluidas en un AASA: AppID para todas las aplicaciones donde se pueden aplicar los enlaces universales. En la nuestra y en muchas otras AASA, verá la configuración de las versiones de producción y prueba de la aplicación, de modo que los enlaces funcionarán en todas las versiones para la prueba. El AppID está estructurado como el prefijo de la aplicación, seguido de la ID del paquete. Por lo general, cada versión de prueba de la aplicación tiene un prefijo diferente, pero la ID del paquete se mantiene constante.

Ejemplo ... {Prefijo de aplicación}. {ID de paquete}

Rutas: Estas son las vías que abrirán la aplicación inmediatamente si el usuario la tiene. La aplicación recibirá la URL de referencia y puede analizar la ruta correcta para vincular al usuario con el contenido a continuación.

La mayoría de los proveedores de atribución, como Branch o Appsflyer, también pueden alojar un AASA para usted en ciertos casos (ejemplo: AASA de Branchbn para Airbnb está alojado en el dominio personalizado https://abnb.me/apple-app-site-association ).

Estos archivos efectivamente incluyen en la lista blanca y en la lista negra las URL a asignar, o no, a la aplicación. Al igual que con un AASA de propiedad de la empresa, para cada dominio, el proveedor especifica los ID de aplicación y las rutas de URL como:

5LL7P8E8RA.com.airbnb.app "/rooms/*" "/wishlists/*" "/invite" "NOT /rooms/*/building-rules"

Cuando los usuarios instalan o actualizan nuestra aplicación, iOS obtiene los archivos AASA de todos los dominios enumerados en los derechos de nuestra aplicación para asegurarnos de que nuestros sitios web permiten que nuestra aplicación abra URL en su nombre.

Problemas conocidos con los enlaces universales

Los enlaces universales funcionan muy bien en la mayoría de los casos, sin embargo, estos se pueden deshabilitar fácilmente y, sin quererlo. Si esto sucede, el usuario siempre será redirigido a la URL del sitio web hasta que actualice su aplicación o restablezca lo que llamamos su "Archivo de derechos" ( link ).

Si un usuario toca el enlace ''airbnb.com'' o ''abnb.me'' en la parte superior derecha de nuestra aplicación, el sistema operativo dirigirá al usuario al sitio web, pero también dirigirá de forma permanente cualquier enlace universal futuro al móvil Sitio web para enlaces con ese dominio!

Esto rompe efectivamente la funcionalidad de Apple Universal Links para el usuario. Esto no se puede rastrear en este momento y la única forma de restablecer es presionar prolongadamente la URL y hacer clic en "Abrir en" Airbnb "" (no es intuitivo) o tocar el botón "Abrir" en el Banner de enlaces universales de Apple (Phantom Banner) Eso fue descrito anteriormente en este documento.

Banner de enlaces universales de Apple

Estas rutas AASA también se usan para determinar cuándo mostrar, o no, el "Banner de Enlaces Universales" del sistema iOS.

Este es un tema particularmente candente que surge en las conversaciones a menudo y vale la pena discutirlo.

Cuando habilita los enlaces universales de Apple en un dominio particular, Apple inyectará un Banner de aplicación en el navegador Safari. Esto significa que además de los banners o intersticiales web que mostramos, Apple también forzará un banner de enlaces universales no personalizable y no rastreable, que se muestra en la parte superior de Safari para los usuarios que tienen la aplicación y están viendo una URL en Safari. Quién es el camino en la AASA.

No tenemos control sobre cómo se ve este banner. Solo podemos determinar si debería estar visible en una página basada en AASA. Tampoco tenemos forma de identificar si un usuario pulsa el botón "ABRIR" (IE, sin atribución).

Resumen de los atributos del banner de enlaces universales de Apple:

  • SOLO se muestra si el usuario tiene la aplicación.
  • NO es lo mismo que el banner de la aplicación inteligente de Apple
  • SOLO se muestra en iOS Safari Browser.
  • No se puede personalizar, excepto que puede personalizar el texto del título y la descripción en este banner con el contenido de iTunesMetadata.plist ( link ).
  • Sin atribución ni seguimiento.

Mientras estoy leyendo, iOS 9 introdujo Universal Links. En la sección "Enlaces universales de soporte" en la Guía de programación de búsqueda de aplicaciones de Apple, dice que esto no es exactamente como un enlace profundo con esquemas de URL, pero no estoy totalmente claro sobre este tema:

  • ¿Cuál es realmente la diferencia (s) entre Universal Link y los Esquemas de URL? ¿Es que un enlace universal es solo para hipervínculos en sitios web, y las aplicaciones de correo o mensajes?
  • ¿Los enlaces universales reemplazan los esquemas de URL?
  • ¿Son los enlaces universales un tipo de enlace profundo?

¿Los enlaces universales reemplazan los esquemas de URL / URI?

En el mundo ideal de Apple, ¡ SI ! Debido a que desde iOS 9.2, Apple ya no admite esquemas de URI para enlaces profundos, los desarrolladores deben implementar Universal Links para poder vincularlos adecuadamente en iOS.

¿Los enlaces universales son un tipo de enlaces profundos?

Debido a que Apple obliga al usuario desarrollador de enlaces universales con el fin de hacer enlaces profundos. Entonces, Universal Links es un tipo de enlace profundo de Apple. Pero si ve que el sdk de Facebook duró, implementaron su propia WebView para permitir el enlace profundo en iOS 9.0 +. Entonces, para Apple Universal Links es mejor que un enlace profundo.


Este es un ejemplo de enlace universal: " http://sample-universal-link.demoapp.com "

Es único , y al ser pulsado abrirá la aplicación sin pasar por Safari (si está instalada) o abrirá el sitio web en Safari (si la aplicación no está instalada)

Este es un ejemplo de esquema de URL: "demoapp" (demoapp: // params)

Es posible que esto no sea único , y al tocarlo abrirá la aplicación si está instalada . Si la aplicación no está instalada , no hará nada . Una o más aplicaciones pueden tener el mismo esquema de URL.

La implementación ( requisitos ) para Universal Link y URL Scheme es bastante diferente, por lo que dudo mucho que Universal links reemplace a URL Scheme.

Universal Link es una de las formas de implementar enlaces profundos.


Los enlaces universales son la capacidad de iOS de enviar solicitudes de URL web a una aplicación determinada, en lugar de abrirlas en el navegador.

Los esquemas de URL son una capacidad de las aplicaciones para abrir en un estado determinado, descrita por la url y manejada en código por el desarrollador.

Digamos que tienes una aplicación llamada "Cool App" y que has registrado el esquema de url "coolapp". Y su aplicación tiene diferentes áreas como "Niza gadgets" y "Cosas bonitas". Ahora puede abrir su aplicación con el enlace coolapp://nice-gadgets enlace coolapp://nice-gadgets . Para hacer que la aplicación se abra en la sección de gadgets, debe implementar el método de application(_:openURL:options:) y, dentro de este, descubrir la url solicitada y hacer que la aplicación abra el controlador de vista solicitado.

Al mismo tiempo, usted tiene un sitio web llamado www.coolapp.com . Cuando navegue con un dispositivo iOS, y se encuentre con un enlace a su sitio, diga www.coolapp.com/nice-gadgets , y abra el enlace, se abrirá en el navegador. Al habilitar enlaces universales, abrirá la aplicación en su lugar llamando a la application(_:continueUserActivity:restorationHandler:) método dado la url como parámetro. Desde aquí puede usar la misma lógica del manejo del esquema de url, para abrir la aplicación en el estado solicitado.

Entonces, ¿los enlaces universales reemplazarán los esquemas de url? Lo dudo, pero van a complementarse de una manera agradable.

¿Los enlaces universales son enlaces profundos? No, pero pueden iniciar el proceso de usar enlaces profundos dentro de una aplicación.