Guía técnica para el enlazado profundo en Android: Esquemas URI

Esta entrada forma parte de una guía técnica en cuatro partes sobre el enlazado profundo en Android. Las siguientes publicaciones cubrirán los intents de Chromelos enlaces en la aplicación de Android, y la URL de referencia de Google Play.

Android es, con diferencia, una de las plataformas más fragmentadas de las que los desarrolladores tienen que manejar, debido a que Google obliga a los fabricantes de dispositivos a realizar la migración de SO, lo que requiere compatibilidad retroactiva y respaldar una multitud de dispositivos compatibles. A menudo, el resultado son unas estructuras de instrucciones «if-else» demasiado extensas para asegurarnos de que usamos el método más óptimo en el contexto adecuado.

Android devices deep linking

El enlazado profundo en Android no es distinto. A lo largo de los años, hemos visto un sinfín de requisitos técnicos que cumplir, dependiendo de las circunstancias y el contexto del usuario. Por suerte, Branch aúna todas estas implementaciones para crear una plataforma de enlazado que funciona en cualquier caso límite. Los enlaces de Branch abarcan y estandarizan esta complejidad para que no se tenga que preocupar por ella. Recomendamos encarecidamente el uso de nuestras herramientas en lugar de tratar de reconstruirlas de cero, ya que las ofrecemos gratuitamente.

En esta serie resumiremos los distintos mecanismos de enlazado profundo que empleamos, y explicaremos cómo funcionan y se implementan.

Puede comenzar en start.branch.ioo utilizar el siguiente botón.

Esquema URI de Android y filtro de intent

Para Android 1.0, se creó el mecanismo de enlazado profundo del esquema URI. Permite al desarrollador registrar su aplicación con una URI (identificador de recurso uniforme) en el sistema operativo, para un dispositivo específico, una vez que la aplicación se ha instalado. Una URI puede ser cualquier secuencia sin carateres especiales, como HTTP, pinterest, fb o myapp. Una vez hecho el registro, si añade :// al final (p. ej., pinterest://) y hace clic en el enlace, la aplicación de Pinterest se abrirá. Si la aplicación de Pinterest no está instalada, verá un código de error de Página no encontrada.

Requisitos para el uso de los esquemas URI en Android
  • Registrar una actividad para responder a URI mediante un filtro de intent en el manifiesto.
  • La aplicación debe estar instalada para su uso. Si la aplicación no está instalada, dará un error.
Cómo configurar un esquema URI en Android

Es sencillo configurar su aplicación para un esquema URI. Para comenzar, tiene que escoger una actividad de su aplicación que quiera abrir cuando se active el esquema URI y se registre un filtro de intent para él. Añada el siguiente código en la pestaña <activity /> en su manifiesto que corresponda con la actividad que quiera abrir.

<intent-filter>
<data android:scheme=your_uri_scheme />
<action android:name=android.intent.action.VIEW />
<category android:name=android.intent.category.DEFAULT />
<category android:name=android.intent.category.BROWSABLE />
</intent-filter>
view rawuri.xml hosted with ❤ by GitHub

 

Puede cambiar your_uri_scheme al esquema URI que prefiera. Lo ideal es que sea único. Si se solapa con el esquema URI de otra aplicación, el usuario verá un seleccionador de Android cuando haga clic en el enlace. Verá esto a menudo cuando tenga varios navegadores instalados, ya que todos están registrados con la URI de HTTP.

Uso de los enlaces profundos en la aplicación de Android

Para usar los enlaces profundos en la aplicación, solo tiene que recoger la cadena de datos de intent en la actividad que se abra al hacer clic. A continuación tiene un ejemplo:

 

Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
String uri = this.getIntent().getDataString();
Log.i(“MyApp”, “Deep link clicked “ + uri);
}
view rawintent.java hosted with ❤ by GitHub

 

Desafortunadamente, a partir de aquí, tendrá que analizar la cadena para leer los valores adjuntos al esquema URI.

Uso práctico de los esquemas URI de Android

El método URI de enlazado profundo es muy restrictivo y no se recomienda sin modificaciones importantes, ya que mostrará mensajes de error si la aplicación no está instalada. Para usar un esquema URI en sí mismo de forma efectiva, tendrá que construir un par de herramientas sobre él para que gestione los casos de punto crítico, como cuando la aplicación no está instalada.

Para asegurarse de que los usuarios que hacen clic sigan teniendo una experiencia de calidad superior si la aplicación no está instalada, tiene que añadir el esquema URI en un Javascript del lado del cliente que pueda ejecutarse en el navegador. Usted alojaría dicho JS en su servidor y enviaría el enlace a los usuarios. A continuación tiene un ejemplo:

var fallbackFunction = function() {
window.location.replace(‘market://details?id=com.myapp.package’);
};
var addIFrame = function() {
var iframe = document.createElement(“iframe”);
iframe.style.border = “none”;
iframe.style.width = “1px”;
iframe.style.height = “1px”;
iframe.src = ‘your_uri_scheme://’;
document.body.appendChild(iframe);
};
addIFrame();
setTimeout(fallbackFunction, 250);
view rawclient.js hosted with ❤ by GitHub

 

El código tratará de abrir la aplicación configurando un origen de iFrame en el esquema URI, para retirarse de forma segura a Google Play Store si la aplicación no se puede cargar.

Conclusión

Permanezca atento a las próximas publicaciones de esta serie sobre el enlazado profundo en Android.

Android es increíblemente complicado y hay casos de punto crítico de forma continua. Creerá que todo va estupendamente hasta que reciba la queja de un cliente porque sus enlaces no funcionan en Facebook desde Android 4.4.4. Por eso debería usar una herramienta como Branch, para evitarse esa pesadilla y asegurarse de que sus enlaces funcionan en todas las situaciones.

TO LEARN MORE ABOUT BRANCH'S
PRODUCTS AND SERVICES

Solicitar demonstración