Intents de Android con Chrome

Puedes iniciar apps directamente desde una página web en un dispositivo Android con una Intent de Android. Puedes implementar un gesto del usuario para iniciar la app con una un esquema personalizado o usa la sintaxis intent:.

Construir un elemento fijo de intent y, luego, incorporarlo en una página para que el usuario pueda elegir iniciar la aplicación. Esto ofrece flexibilidad sobre cómo y cuándo se inician las aplicaciones. lo que significa que puedes pasar información a la app con intents adicionales.

La sintaxis básica de un URI basado en intents es la siguiente:

intent:  
   HOST/URI-path // Optional host  
   #Intent;  
      package=\[string\];  
      action=\[string\];  
      category=\[string\];  
      component=\[string\];  
      scheme=\[string\];  
   end;

Consulta el código fuente de Android para obtener los detalles del análisis.

Cuando no se resuelve un intent o no se inicia una aplicación externa, se puede redireccionar al usuario a la URL de resguardo. Puedes especificar una URL alternativa con un Intent Extra:

S.browser_fallback_url=[encoded_full_url]

Usa S.<name> para definir extras de intents. Este extra en particular está retrocompatible. Chrome quita browser_fallback_url para que La app de destino no ve este valor.

Chrome no iniciará una aplicación externa en los siguientes casos:

  • No se puede resolver el intent. En otras palabras, ninguna app puede controlar el intent.
  • Un temporizador de JavaScript intentó abrir una aplicación sin un gesto del usuario.

Ejemplos

El siguiente es un intent que inicia la app de escaneo de códigos de barras Zxing:

intent:  
   //scan/  
   #Intent;  
      package=com.google.zxing.client.android;  
      scheme=zxing;  
   end;

Para iniciar la app de escaneo de códigos de barras de Zxing, codifica tu href en el ancla:

  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
    Take a QR code
  </a>

Consulta el Manifiesto de Zxing de Android, que define el paquete y el host.

Cuando se especifica una URL de resguardo, la URL completa se ve de la siguiente manera:

   <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
    Take a QR code
  </a>

Ahora, la URL envía a los usuarios a zxing.org, si no se puede encontrar la aplicación, el vínculo será activado por JavaScript sin gestos del usuario u otros casos en los que no iniciar una aplicación externa.

Consideraciones

Si invocas una actividad de Android con un intent que contiene Extras, también puedes incluir estos detalles.

Solo actividades con el filtro de categoría android.intent.category.BROWSABLE se puede invocar con este método, ya que indica que la aplicación es segura para abrirlo desde el navegador.

Chrome no iniciará una app externa para un URI de intent determinado en los siguientes casos:

  • El URI del intent se redirecciona desde una URL escrita.
  • El URI de intent se inicia sin un gesto del usuario.