Intents Android avec Chrome

Vous pouvez lancer des applications directement à partir d'une page Web sur un appareil Android avec un intent Android. Vous pouvez implémenter un geste de l'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 de lancer l'application. Cela offre plus de flexibilité concernant le mode et le moment de lancement des 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 un intent est la suivante:

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

Consultez le code source Android pour en savoir plus sur l'analyse.

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 supplémentaire:

S.browser_fallback_url=[encoded_full_url]

Utilisez S.<name> pour définir les extras d'intent. Cet extra est rétrocompatible. Chrome supprime browser_fallback_url afin que l'application cible ne voie 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 le geste de l'utilisateur.

Exemples

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

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

Pour lancer l'application de lecture de code-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, si le lien est déclenché par JavaScript sans geste de l'utilisateur, ou dans les cas où nous ne lançons pas d'application externe.

Points à prendre en compte

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

Seules les activités avec le filtre de catégorie android.intent.category.BROWSABLE peuvent être appelées à l'aide de cette méthode, car elle indique que l'application peut être ouverte en toute sécurité depuis le navigateur.

Chrome ne lance 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.