Cómo abrir una aplicación de Android desde el navegador
Abrir una aplicación instalada desde un navegador se suele denominar «deep linking», y con esta guía aprenderás a enlazar en profundidad tu aplicación de Android por ti mismo. Nos centraremos exclusivamente en cómo desencadenar la apertura de una aplicación desde una página web, y no desde el clic de un enlace dentro de otras aplicaciones. Para una mirada más detallada de todos los diferentes estándares de deep linking requeridos para una cobertura completa de Android, por favor vea nuestra serie de deep linking de Android: Parte 1, Parte 2, Parte 3 y Parte 4.
Android es, con mucho, una de las plataformas más fragmentadas que los desarrolladores han tenido que gestionar, debido a la decisión de Google de obligar a los fabricantes de dispositivos a ser responsables de portar el sistema operativo, lo que requiere compatibilidad con versiones anteriores y soporte de una multitud de dispositivos. En este ecosistema, a los desarrolladores de aplicaciones nos toca recoger los pedazos. La vinculación profunda en Android, por desgracia, no es diferente – a lo largo de los años, hemos visto una gran cantidad de requisitos técnicos que deben ser utilizados en función de las circunstancias y el contexto del usuario.
Nótese que Branch implementará toda esta complejidad para usted, alojará los enlaces profundos, e incluso le dará un análisis robusto detrás de los clics, las aperturas de la aplicación, y los eventos del embudo. Puedes jugar con los enlaces de Branch de forma gratuita registrándote aquí. Recomendamos encarecidamente el uso de nuestras herramientas en lugar de tratar de reconstruirlas desde cero, ya que las damos todas de forma gratuita.
Resumen de los cambios
Hay dos lugares en los que será necesario realizar cambios para abrir con éxito su aplicación Android: su sitio web y su aplicación Android. Puede encontrar los detalles de cada cambio en las secciones correspondientes a continuación.
Añadir soporte para esquemas URI a su aplicación
Un esquema URI puede ser cualquier cadena sin caracteres especiales, como http, pinterest, fb o myapp. Una vez registrado, si añades :// al final (por ejemplo, pinterest://) y haces clic en este enlace, se abrirá la app de Pinterest. Si la app de Pinterest no está instalada, verás un error de ‘Página no encontrada’.
Es sencillo configurar tu app para un esquema URI. Para empezar, tienes que elegir una actividad dentro de tu aplicación que quieras abrir cuando se active el esquema URI, y registrar un filtro de intención para ella. Agregue el siguiente código dentro de la etiqueta <activity /> dentro de su manifiesto que corresponde a la Actividad que desea 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>
Puede cambiar su_uri_scheme al esquema URI que desee. Lo ideal es que sea único. Si se solapa con el esquema URI de otra aplicación, el usuario verá un selector de Android al hacer clic en el enlace. Esto se ve a menudo cuando tienes varios navegadores instalados, ya que todos se registran para el URI http.
A continuación, querrás confirmar que tu aplicación se abrió desde el esquema URI. Para manejar el enlace profundo en la aplicación, simplemente necesita agarrar la cadena de datos de la intención en la Actividad que se abrió a través del clic. A continuación se muestra un ejemplo:
Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}
A partir de aquí, tendrá que hacer el análisis de cadenas para leer los valores anexados el esquema URI que será muy específico para su caso de uso y la implementación.
Añadir Javascript a su sitio web para abrir su aplicación
Ahora que su aplicación para Android está listo para ser lanzado desde un esquema URI, la siguiente parte es simple. Sólo tienes que añadir un poco de Javascript a tu sitio web para que tu aplicación se abra automáticamente. La función de abajo, triggerAppOpen, intentará abrir el esquema URI de tu aplicación una vez que reemplaces tu_uri_scheme con el que agregaste en el manifiesto de arriba.
var fallbackToStore = function() { window.location.replace('market://details?id=com.myapp.package');};var openApp = function() { window.location.replace('your_uri_scheme://');};var triggerAppOpen = function() { openApp(); setTimeout(fallbackToStore, 250);};
Podrías llamar a triggerAppOpen en window.onload si quisieras hacerlo en la carga de la página, o podrías hacerlo en el onclick de un enlace en algún lugar de tu sitio. Cualquiera de los dos funciona y obtendrá los resultados previstos.
Android es increíblemente complicado, y hay casos de borde en todas partes. Creerás que todo va bien hasta que tengas a ese usuario que se queja de que sus enlaces no funcionan en Facebook mientras ejecuta Android 4.4.4. Por eso deberías utilizar una herramienta como Branch, para ahorrarte esta pesadilla y asegurarte de que tus enlaces funcionan en todas partes. Asegúrese de solicitar una demostración de Branch si está interesado en obtener más información.