Intents Android avec Chrome

Vous pouvez lancer des applications directement à partir d'une page Web sur un appareil Android doté d'un Intent Android : Vous pouvez implémenter un geste utilisateur pour lancer l'application avec un schéma personnalisé ou utiliser la syntaxe intent:.

Créez une ancre d'intent et intégrez-la dans une page pour que l'utilisateur puisse choisir lancer l'application. Cela permet de choisir quand et comment lancer les applications, ce qui signifie que vous pouvez transmettre des informations à l'application avec des intents supplémentaires.

La syntaxe de base d'un URI basé sur l'intent est la suivante:

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

Pour en savoir plus sur l'analyse, reportez-vous au code source Android.

Lorsqu'un intent n'est pas résolu ou qu'une application externe ne se lance pas, l'utilisateur peut être redirigé vers l'URL de remplacement. Vous pouvez spécifier une URL de remplacement avec un Intent Extra:

S.browser_fallback_url=[encoded_full_url]

Utilisez S.<name> pour définir les extras d'intent. Cet extra particulier est rétrocompatible. Chrome supprime browser_fallback_url afin que l'application cible ne voit pas cette valeur.

Chrome ne lance pas d'application externe dans les cas suivants:

  • Impossible de résoudre l'intent. En d'autres termes, aucune application ne peut gérer l'intent.
  • Un minuteur JavaScript a tenté d'ouvrir une application sans geste de l'utilisateur.

Exemples

Voici un intent qui lance l'application de lecteur de code-barres Zxing:

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

Pour lancer l'application de lecteur de codes-barres Zxing, encodez votre href sur l'ancre:

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

Consultez le fichier manifeste Android Zxing, qui définit le package et l'hôte.

Lorsqu'une URL de remplacement est spécifiée, l'URL complète se présente comme suit:

   <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>

Désormais, l'URL redirige les utilisateurs vers zxing.org si l'application est introuvable, le lien est déclenchée par JavaScript sans geste de l'utilisateur, ou dans les autres cas où nous ne lancer une application externe.

Remarques

Si vous appelez une activité Android avec un intent contenant des bonus, vous pouvez également inclure ces détails.

Uniquement les activités avec le filtre de catégorie android.intent.category.BROWSABLE peut être appelée à l'aide de cette méthode, car elle indique que l'application est sécurisée à ouvrir dans le navigateur.

Chrome ne lancera pas d'application externe pour un URI d'intent donné dans les cas suivants:

  • L'URI d'intent est redirigé à partir d'une URL saisie.
  • L'URI d'intent est initié sans geste de l'utilisateur.