Intents Android avec Chrome

Vous pouvez lancer des applications directement à partir d'une page Web sur un appareil Android à l'aide 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 un ancrage d'intent et intégrez-le dans une page afin que l'utilisateur puisse choisir de lancer l'application. Cela permet de définir de manière flexible comment et quand les applications sont lancées, ce qui signifie que vous pouvez transmettre des informations à l'application avec les éléments supplémentaires d'intent.

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;

Pour en savoir plus sur l'analyse, consultez le 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 supplémentaire:

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 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 essayé 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 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 ne peut pas être trouvée, si le lien est déclenché par JavaScript sans geste de l'utilisateur ou dans d'autres cas où nous ne lançons pas d'application externe.

Remarques

Si vous appelez une activité Android avec un intent contenant des extras, vous pouvez également inclure ces informations.

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é si:

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