Les navigateurs intégrés aux applications offrent à vos utilisateurs une expérience Web complète sans qu'ils aient à quitter votre application. Android propose deux API principales pour implémenter des navigateurs intégrés aux applications : Custom Tabs et WebView. Utilisez un navigateur intégré à l'application lorsque vous avez un lien ou une annonce qui redirige vers une page Web. Vous pouvez ouvrir cette page directement dans votre application, comme vous pouvez le voir sur la figure 1.
Le choix entre les onglets personnalisés et les WebView est une décision architecturale importante qui affecte la vitesse de développement, l'expérience utilisateur et le niveau de contrôle que vous avez sur l'UI.
Comparatif rapide
Utilisez le tableau suivant pour déterminer l'outil qui répond à vos besoins :
| Fonctionnalité | WebView | Onglets de personnalisation |
|---|---|---|
| Utilisation principale | Créer des applications hybrides avec le Web comme contenu principal ou complémentaire, afficher des annonces, des campagnes dans l'application ou des pages de conditions d'utilisation. | Afficher du contenu provenant de sites Web externes (comme des articles d'actualités ou des pages de produits) |
| Contrôle de l'UI | Complète Il s'agit d'un composant View que vous pouvez placer n'importe où. Vous contrôlez toute l'UI environnante. |
Limité Vous pouvez définir la couleur de la barre d'outils et ajouter quelques actions personnalisées. |
| Données et sessions | En bac à sable. Il ne partage pas les cookies ni les identifiants de connexion avec le navigateur principal de l'utilisateur. | Partagées Il utilise la session de navigateur par défaut de l'utilisateur, y compris les cookies et les mots de passe enregistrés. |
| Pont entre les applications natives et Web | Oui. Vous pouvez utiliser un pont JavaScript pour une communication bidirectionnelle approfondie entre le contenu Web et le code d'application native. | Limitée Vous pouvez utiliser la méthode window.postMessage() pour transmettre des chaînes de base. |
| Effort du développeur | Élevée : Vous devez gérer vous-même le cycle de vie, la navigation et les performances. | Faible Vous pouvez l'implémenter en quelques lignes de code. |
WebView
Une WebView est une vue qui intègre des pages Web à la mise en page de votre application. Elle est puissante, mais un peu plus complexe à gérer que les onglets personnalisés.
WebView peut charger du contenu Web distant ou local, exécuter JavaScript et permettre une communication bidirectionnelle entre votre contenu Web et le code de l'application native. Pour en savoir plus sur ses fonctionnalités, consultez Fonctionnalités de WebView.
Vous pouvez également utiliser WebView pour fournir une application Web ou afficher une page Web en ligne dans votre application (par exemple, un contrat d'utilisateur final que vous devez mettre à jour régulièrement). Pour en savoir plus, consultez Développer des applications Web dans WebView.
Pourquoi choisir WebView ?
Voici quelques scénarios dans lesquels WebView est une bonne solution :
- Applications hybrides : vous créez une application dans laquelle le contenu Web et les composants natifs (comme une barre de navigation ou un bouton d'action flottant) coexistent.
- Contenu propriétaire : votre contenu Web est un élément interactif essentiel de l'expérience de l'application, comme un éditeur de documents ou un canevas de conception.
- Contrôle complet de l'UI : vous devez modifier le contenu de la page Web elle-même ou superposer des éléments d'UI natifs.
- Analyses approfondies : vous avez besoin d'informations détaillées sur l'engagement et l'activité des utilisateurs dans la vue Web.
Principaux compromis
Voici quelques compromis clés à prendre en compte lorsque vous utilisez WebView :
- Performances : WebView peut utiliser beaucoup de mémoire. Si vous ne le gérez pas avec soin, vous pouvez rencontrer des problèmes de performances ou des erreurs ANR (Application ne répond pas).
- Sécurité et maintenance : vous êtes responsable du renforcement de la sécurité et de la gestion du cycle de vie. Toutefois, les mises à jour de WebView sont déployées à l'échelle mondiale via Google Play. Vous n'avez donc pas à vous soucier de l'obsolescence du moteur sous-jacent.
Onglets de personnalisation
Les onglets personnalisés sont un excellent choix pour rediriger les utilisateurs vers des URL externes, car ils fournissent une fenêtre de navigateur rapide, sécurisée et conviviale qui se glisse sur votre application.
Pourquoi choisir les onglets personnalisés ?
Voici quelques scénarios dans lesquels les onglets personnalisés sont adaptés :
- Liens externes : lorsqu'un utilisateur appuie sur un lien vers un site Web qui ne vous appartient pas, les onglets personnalisés le maintiennent dans le contexte de votre application tout en lui offrant une expérience de navigation complète.
- Facilité d'intégration : il s'agit du moyen le plus simple de mettre en place une expérience Web intégrée.
- État partagé : comme il partage les cookies avec le navigateur par défaut de l'utilisateur, celui-ci n'a pas besoin de se reconnecter aux sites qu'il a déjà visités.
- Connexion tierce : elles sont bien adaptées aux flux de connexion tierce (comme "Se connecter avec Google" ou "Se connecter avec Facebook"), car le navigateur gère les identifiants de manière sécurisée.
Bien que la plupart des navigateurs soient compatibles avec les onglets personnalisés, certains offrent plus de personnalisation que d'autres. Pour en savoir plus, consultez Navigateurs compatibles.
Utiliser du contenu Web dans Jetpack Compose
Vous pouvez utiliser les onglets personnalisés et WebView lorsque vous créez des applications avec Jetpack Compose :
- Onglets personnalisés : les onglets personnalisés utilisant un
Intent, vous pouvez les lancer depuis n'importe quelContextdans vos fonctions Compose, ce qui permet une intégration fluide. - WebView : Compose ne dispose pas encore de composable WebView natif. Vous devrez donc utiliser
AndroidViewpour intégrer une WebView standard dans votre mise en page.
Ressources supplémentaires
Pour développer des pages Web pour les appareils Android à l'aide des API WebView ou Onglets personnalisés, consultez les documents suivants :
- Intégrer du contenu Web dans votre application en tant que contenu principal ou secondaire
- Documentation de référence de l'API : WebView
- Présentation des onglets personnalisés
- Présentation des activités Web fiables
- Compatibilité avec les navigateurs