Detectar desde el navegador si una aplicación específica está instalada en Android

Estoy buscando una forma de averiguar si una aplicación específica está instalada desde un navegador web del lado del cliente. La plataforma es Android.

Por ejemplo, escribo mi propio sitio web y escribo mi propia aplicación, ahora quiero cuando el usuario acceda a mi propio sitio desde el navegador del teléfono Android. El navegador mira si la aplicación ya está instalada en el teléfono y si no sugiere la instalación de la aplicación. Puedo hacer eso ?

¿Quieres decir que JavaScript se ejecuta en el navegador? Creo (esperanza) que es imposible. No me gustaría que ningún sitio web al azar pueda ver qué aplicaciones están instaladas.

Si desea que el usuario instale una aplicación en particular, puede proporcionar un enlace de Market en su sitio web: http://developer.android.com/guide/publishing/publishing.html#marketintent

Editar: Después de su aclaración en los comentarios a mi respuesta, una respuesta más útil apareció a continuación, que legítimamente tiene más votos ascendentes.

Hay una manera de lograr esto.

No puede detectar si una aplicación en particular está instalada, por razones de seguridad y privacidad. Pero puede hacer un truco para abrir la aplicación si está instalada o abrir su página de Google Play si no lo está.

Para hacerlo, debe crear un filtro de intención en la actividad principal de su aplicación, para abrirlo cuando se llame a una URL determinada. Me gusta esto:

        

Explicando: cuando el usuario navega a http://www.myurl.com/openmyapp , si la aplicación está instalada, se creará un bash y se mostrará la Actividad.

Pero, ¿y si el usuario no tiene la aplicación instalada? Luego debe crear una página de redirección en su http://www.myurl.com/openmyapp/index.html . Cuando el usuario llega a esta dirección, su servidor debe redireccionar al market://details?id=com.your.app.package .

De esta forma, cuando no se crea Intent después de que el usuario navega a http://www.myurl.com/openmyapp , el servidor web llamará a otra URL. Esa URL, a su vez, abrirá Google Play en el dispositivo, directamente en la página de la aplicación.

Espero eso ayude.

Encontré una solución más útil. A continuación se muestra el archivo de configuración de Android:

          

Debajo está el código html:

    Insert title here    local3

De esta forma, cuando el usuario hace clic en la etiqueta, y si el dispositivo tiene la aplicación instalada, no mostrará un diálogo para que el usuario elija, sino que la abrirá directamente; y si la aplicación no se ha instalado, se llamará a la función js “test2”, por lo tanto, sabemos que la aplicación no se ha instalado, por lo que podemos hacer cualquier cosa en la “prueba2”. El beneficio es que no necesitamos usar el esquema html estándar, que mostraría un diálogo de selección, y si utilizo el esquema definido yo mismo, ¡la página no se habría navegado a una página incorrecta! Soy chino, mi inglés no es bueno, espero que todos puedan entenderme y que otros sepan la resolución.

Puede hacer uso de Intentos de Android. Puede construir un ancla de bash para iniciar la aplicación. Si la aplicación no está instalada, el navegador busca el nombre del paquete especificado en el anclaje de bash. También podemos proporcionar una URL Fall Back.

ejemplo:

  Take a QR code  

Esto no es compatible con todos los navegadores. Chrome y algunos otros navegadores principales lo admiten. Verifique este enlace para más detalles.

Sé que esto es tarde pensó que podría ayudar a alguien.

Esto podría estar disponible pronto públicamente.

El equipo de Chrome dice:

En Chrome 59 estamos presentando una nueva API llamada getInstalledRelatedApps () . Esta nueva API te permite determinar si tu aplicación nativa está instalada en un dispositivo. ( https://developers.google.com/web/updates/2017/04/getinstalledrelatedapps )

Todavía:

Nota: Esta API está detrás de una Prueba de Origen, esto significa que estamos en un modo experimental y estamos buscando comentarios activamente. Debe optar por su sitio en esta versión de prueba ( https://github.com/jpchase/OriginTrials/blob/gh-pages/developer-guide.md ) porque no está disponible ampliamente en la web. Ahora puede suscribirse para la versión de prueba ( https://docs.google.com/forms/d/e/1FAIpQLSfO0_ptFl8r8G0UFhT0xhV17eabG-erUWBDiKSRDTqEZ_9ULQ/viewform?entry.1999497328=getInstalledRelatedApps ).

Estado actual de la plataforma de esta función: https://www.chromestatus.com/feature/5695378309513216

Ejecute en el rastreador de errores para esta característica: https://bugs.chromium.org/p/chromium/issues/detail?id=587623

/ Actualización 15.02.2018:

Se completó la getInstalledRelatedApps() prueba para getInstalledRelatedApps() : https://github.com/GoogleChrome/OriginTrials/blob/gh-pages/completed-trials.md : First available in Chrome M59. Trial ends on January 30, 2018. First available in Chrome M59. Trial ends on January 30, 2018. , pero aún no se implementó en Chrome estable: el Feature team currently considering the next steps for the feature.