Haga un enlace en el navegador de Android para iniciar mi aplicación?

¿Es posible hacer un enlace como:

click me! 

¿Cómo se inicia mi aplicación Anton?

Sé que esto funciona para la aplicación Android Market con el protocolo de mercado, pero ¿se puede hacer algo similar con otras aplicaciones?

Aquí hay un ejemplo de un enlace que iniciará Android Market:

 click me! 

Actualización: la respuesta que acepté provista por eldarerathis funciona muy bien, pero solo quiero mencionar que tuve algunos problemas con el orden de los subelementos de la etiqueta . Sugiero que simplemente haga otro con los nuevos subelementos en esa etiqueta para evitar los problemas que tuve. Por ejemplo, mi AndroidManifest.xml tiene este aspecto:

             

Creo que querrá ver el elemento de su archivo Mainfest. Específicamente, eche un vistazo a la documentación del subelemento .

Básicamente, lo que tendrá que hacer es definir su propio esquema. Algo como:

      < --Not positive if this one is needed ...  

Luego, debería poder iniciar su aplicación con enlaces que comiencen con el esquema anton: URI.

¡NO use su propio esquema personalizado así! Los esquemas de URI son un espacio de nombres global de red. ¿Es dueño del esquema “anton:” en todo el mundo? ¿No? Entonces NO lo use.

Una opción es tener un sitio web y tener un filtro de intención para un URI particular en ese sitio web. Por ejemplo, esto es lo que hace Market para interceptar los URI en su sitio web:

        

Alternativamente, existe el esquema “intención”. Esto le permite describir casi cualquier bash como un URI, que el navegador intentará ejecutar cuando se haga clic. Para crear un esquema de este tipo, la mejor manera es simplemente escribir el código para construir la intención que desea lanzar, y luego imprimir el resultado de intent.toUri (Intent.URI_INTENT_SCHEME).

Puede usar una acción con esta intención para encontrar cualquier actividad que respalde esa acción. El navegador agregará automáticamente la categoría BROWSABLE a la intención antes de iniciarlo, por razones de seguridad; también eliminará cualquier componente explícito que haya suministrado por el mismo motivo.

La mejor manera de usar esto, si desea asegurarse de que solo se inicia su aplicación, es con su propia acción de scope y utilizando Intent.setPackage () para decir que la intención solo coincidirá con su paquete de la aplicación.

Compensaciones entre los dos:

  • Los URI de http requieren que tengas un dominio de tu propiedad. El usuario siempre tendrá la opción de mostrar el URI en el navegador. Tiene muy buenas propiedades de recuperación donde si su aplicación no está instalada, simplemente aterrizarán en su sitio web.

  • Los URI de intención requieren que su aplicación ya esté instalada y solo en teléfonos Android. Permiten casi cualquier bash (pero siempre tienen la categoría BROWSABLE incluida y no admiten componentes explícitos). Le permiten dirigir el lanzamiento solo a su aplicación sin que el usuario tenga la opción de ir al navegador o a cualquier otra aplicación.

Me disculpo por promocionarme, pero tengo un complemento jQuery para iniciar aplicaciones nativas desde enlaces web https://github.com/eusonlito/jquery.applink

Puedes usarlo fácil:

  My Facebook Profile 

También me enfrenté a este problema y veo muchas páginas absurdas. Aprendí que para hacer que tu aplicación sea navegable, cambia el orden de los elementos XML, esto:

               

Esto funcionó para mí y podría ayudarte.

Aquí está mi receta:

Cree un HTML estático que redirija a la URL de su aplicación solicitada, ponga esa página en la web.

De esta forma, los enlaces que compartes son enlaces ‘reales’ en lo que respecta a Android (serán ‘clicables’).

Usted ‘comparte’ un enlace HTTP regular, http://www.your.server.com/foo/bar.html Esta URL devuelve un código HTML simple de 8 líneas que redirige al URI de su aplicación (window.location = “blah: // kuku”) ( tenga en cuenta que ‘blah’ ya no tiene que ser HTTP o HTTPS).

Una vez que lo ponga en funcionamiento, puede boost el HTML con todas las capacidades sofisticadas como se sugirió anteriormente.

Esto funciona con el navegador integrado, Opera y Firefox (no ha probado ningún otro navegador). Firefox pregunta ‘Este enlace debe abrirse con una aplicación’ (ok, cancelar). Aparentemente, otros navegadores no se preocupan por la seguridad, solo abren la aplicación, sin hacer preguntas.

Una vez que tenga el bash y el esquema de url personalizado para configurar su aplicación, este código de JavaScript en la parte superior de una página de recepción me ha funcionado tanto en iOS como en Android:

  

Esto solo ha sido probado en el navegador de Android. No estoy seguro acerca de Firefox u Opera. La clave es que a pesar de que el navegador de Android no lanzará una buena excepción para usted en window.open(custom_url, '_blank') , fallará y devolverá un null que podrá probar más adelante.

Actualización: utilizando store_loc = "https://play.google.com/store/apps/details?id=com.raditaz"; para vincular a Google Play en Android.

Es posible que desee considerar una biblioteca para manejar el enlace profundo a su aplicación:

https://github.com/airbnb/DeepLinkDispatch

Puede agregar el filtro de intención en una actividad anotada como las personas sugeridas anteriormente. Manejará el enrutamiento y el análisis de parámetros para todos sus enlaces profundos. Por ejemplo, su MainActivity podría tener algo como esto:

 @DeepLink("somePath/{useful_info_for_anton_app}") public class MainActivity extends Activity { ... } 

También puede manejar los parámetros de consulta también.