una link imagen desde atributo app abrir android deep-linking

link - Enlace profundo de Android: use el mismo enlace para la aplicación y Play Store



abrir una app desde un link (4)

Tengo un sitio web que permite al usuario realizar una consulta de búsqueda. La consulta puede tardar un tiempo en completarse (minutos a días), y me gustaría permitir que el usuario descargue una aplicación de Android y reciba la respuesta allí, enviando un correo electrónico con un enlace al usuario.

Me gustaría que este mecanismo funcione si el usuario tiene la aplicación instalada o no; en otras palabras:

  • Si el usuario tiene la aplicación, debe abrirse con un enlace profundo que contenga un argumento identificador.
  • Si el usuario no lo tiene, debe abrir Play Store en la página de la aplicación (por ejemplo, https://play.google.com/store/apps/details?id=com.bar.foo&referrer=BlahBlah ), deje que el usuario instale y abra la aplicación con el argumento identificador.

¿Hay alguna manera de formar un enlace que abra una aplicación de Android con un argumento, que funcionaría independientemente de si la aplicación está instalada o no?


Esta pregunta es bastante antigua pero también muy popular, por lo que definitivamente vale la pena saber que ahora este caso de uso es oficialmente compatible con Firebase, precisamente Firebase Dynamic Links .

Solo admite abrir aplicaciones y enlaces profundos diferidos, lo que significa que después de instalar la aplicación, cuando la aplicación se está iniciando, puede recuperar los datos (enlace) que se utilizaron para instalar la aplicación.

Está construido sobre el enlace de aplicaciones, por lo que aún necesita el mismo intent-filter que antes.

En resumen, debe agregar la implementation ''com.google.firebase:firebase-dynamic-links:VERSION'' y recuperar el enlace de la instancia de la clase FirebaseDynamicLinks .

Por supuesto, debe cambiar los enlaces en el sitio web con los generados en la consola Firebase, pero la buena noticia es que estos enlaces son "dinámicos" (como su nombre lo indica) para que funcionen en todos los sistemas.

Para obtener toda la información detallada y configurar con ese caso de uso, vaya aquí: https://firebase.google.com/docs/dynamic-links/use-cases/web-to-app


Esta solución podría funcionar:

  1. En el lado del servidor, cree una regla de redireccionamiento a Google Play. Por ejemplo, https://www.foo.com/bar/BlahBlah redirigirá a https://play.google.com/store/apps/details?id=com.bar.foo&referrer=BlahBlah .

  2. En la aplicación, registre el enlace del lado del servidor como un enlace profundo :

<data android:scheme="https" android:host="www.foo.com" android:pathPrefix="/bar" />

Ahora, si la aplicación está instalada, se capturará la URL y la ruta se puede analizar para extraer la parte de BlahBlah . Si la aplicación no está instalada, presionar el enlace redirigirá al usuario a Play Store con la URL de referencia.

Notas:

  • /bar/BlahBlah se convirtió a &referrer=BlahBlah , porque Play Store recibe un argumento de URL y el mecanismo de enlace profundo funciona con rutas de URL (hasta donde puedo decir)

La solución de Adam es bastante buena si quieres construirla tú mismo.

Hay un SDK de código abierto que hace exactamente esto, por Branch Metrics (divulgación completa, trabajo allí).

Básicamente, configura su esquema de URI en el tablero de Branch, crea un enlace con los datos que desea pasar (en este caso, los parámetros de consulta, pero usted decide), y el SDK tiene un método con una devolución de llamada que le proporciona dicha consulta parámetros (a través de la instalación o enlace profundo regular haciendo clic en el enlace Branch).


Puede intentar usar este esquema (para ser enviado al usuario):

intent://details?id=X&url=Y&referrer=Z#Intent;scheme=market;action=android.intent.action.VIEW;package=com.android.vending;end";

X: nombre del paquete de la aplicación

Y: esquema de enlace profundo que debe definirse en el manifiesto de la aplicación. (Consulte esto ) Aquí, han utilizado esta URL como ejemplo: " http://www.example.com/gizmos ", por lo tanto, Y debe ser reemplazado por esta URL.

Z: puede ser cualquier dato que desee pasar a la aplicación a través de Google Play. Tenga en cuenta que cualquier dato que pase no debe estar ''&'' separado porque los parámetros originales están '''' separados.

Según lo que experimenté, el navegador comprende esta URL y lo redirige a la aplicación en función del nombre del paquete y el esquema de enlace profundo. De lo contrario, te lleva a Google Play.

PD: Google Play realiza una transmisión a la aplicación. Así que asegúrese de recibir la transmisión en un receptor.