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:
- Cómo realizar vinculación de datos de dos vías con un ToggleButton?
- Deeplink filtro de intención a un pathPrefix en particular?
- Android Deep Linking problema! Cómo utilizar el esquema de URL personalizado myapp: // some_data
- La aplicación de Android se abre desde los enlaces enviados por correo electrónico
- Cómo graciosamente regresar a la página web cuando Deep Link no puede ser manejado por la aplicación
- 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.
¿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?
- Android: enlace de datos no se actualiza
- Facturación en aplicaciones de Android y servicio bindService
- Cómo iniciar una aplicación utilizando un deeplink en android
- Android - Valor de texto condicional utilizando Vinculación de datos
- Error de enlace de datos: los valores antiguos deben ser seguidos por nuevos valores. El parámetro 2 debe ser del mismo tipo que el parámetro 3
- Deep linking y múltiples instancias de aplicación
- Abrir mi aplicación del esquema de URL en Android
- Excepción de ClassCast de Android al vincular al servicio
Esta solución podría funcionar:
-
En el lado del servidor, cree una regla de redireccionamiento a Google Play. Por ejemplo,
https://www.foo.com/bar/BlahBlah
redirigirá ahttps://play.google.com/store/apps/details?id=com.bar.foo&referrer=BlahBlah
. -
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.
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).
- App no se encuentra en styles.xml en la carpeta res
- ACTION_SENDTO para enviar un correo electrónico