Enlace profundo de Android: utiliza el mismo enlace para la aplicación y la tienda de reproducción

Tengo un sitio web que permite al usuario hacer una consulta de búsqueda. La consulta puede tardar algún tiempo en completarse (minutos a días), y me gustaría permitir al usuario descargar una aplicación de Android y recibir 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 la tienda de reproducción 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.

Introduzca aquí la descripción de la imagen

¿Hay una 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 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, la URL será atrapada y la ruta puede ser analizada para extraer la parte BlahBlah . Si la aplicación no está instalada, presionando el enlace, se redirigirá al usuario a Play Store con la URL de referencia.

Introduzca aquí la descripción de la imagen

Notas:

  • /bar/BlahBlah se convirtió en &referrer=BlahBlah , porque la tienda de juegos recibe un argumento de URL y el mecanismo de enlace profundo funciona con rutas de URL (por lo que puedo decir)

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

Intención: // detalles? Id = X & url = Y & referrer = Z # Intent; esquema = mercado; acción = 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. (Por favor refiérase a esto ) Aquí, han utilizado esta URL como un ejemplo: " http://www.example.com/gizmos ", por lo tanto Y debería ser reemplazado por esta URL.

Z: puede ser cualquier dato que quieras 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.

Por lo que he experimentado, esta URL es entendida por el navegador y lo redirecciona a la aplicación en función del nombre del paquete y del esquema de vínculos profundos. De lo contrario, te llevará a Google Play.

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

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, yo trabajo allí).

Básicamente, se establece el esquema de URI en el tablero de sucursales, crear 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 da dicha consulta (A través de la instalación o deeplink regular haciendo clic en el enlace Sucursal).

  • Android IntentService proporciona datos a Actividad
  • La vinculación profunda no abre una aplicación nueva
  • Android deeplink por sabor
  • ¿Cómo Deep Link en un fragmento en una aplicación para Android. ¿Es posible?
  • Android Databinding: "Referencias de métodos con '.' es obsoleto"
  • La indexación de aplicaciones con signo comercial en Deep Link no funciona
  • Clase de enlace de datos no generada
  • Enlace profundo en una aplicación mientras la aplicación ya se está ejecutando en segundo plano
  • Excluir pocas URL de la vinculación
  • Abrir aplicación de Android a través de vínculo profundo si está instalado o volver a la web si no está instalado
  • Los vínculos profundos de Android no siguen el prefijo de ruta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.