Prise en charge des navigateurs

Patrick Kettner
Patrick Kettner

Les onglets personnalisés sont une excellente option pour créer une expérience de navigateur personnalisée directement dans votre application, mais ils ne sont pas uniques. Basées sur le système d'intents, les onglets personnalisés sont un ensemble de requêtes d'options configurables envoyées au navigateur préféré de l'utilisateur final. Il revient à chaque navigateur d'implémenter les différentes options. La disponibilité des fonctionnalités des onglets personnalisés peut varier d'un navigateur Android à l'autre en raison de différences d'implémentation.

Vous trouverez ci-dessous une comparaison de certains navigateurs de l'écosystème Android. La grande majorité des navigateurs sur Android sont compatibles à un certain niveau. Les tableaux ne sont pas exhaustifs, mais ils illustrent le niveau d'assistance que vous êtes susceptible de recevoir. Vous devez rechercher les navigateurs par défaut des utilisateurs de votre application et vous assurer de coder de manière défensive.

CustomTabsIntent.Builder

CustomTabsIntent.Builder crée des onglets personnalisés. Vous pouvez configurer votre onglet personnalisé de plusieurs façons pour qu'il s'intègre le plus harmonieusement possible à votre application à l'aide d'une collection de méthodes intégrées, listées ci-dessous.

addDefaultShareMenuItem()

addDefaultShareMenuItem() ajoute un bouton de partage par défaut à la barre d'outils des onglets personnalisés, ce qui permet à l'utilisateur de partager la page Web actuelle via différentes applications sur son appareil.

addMenuItem()

Ajoute un élément de menu.

À gauche, un téléphone affichant une application utilisant addMenuItem() et à droite, un téléphone distinct sans l'API

addToolbarItem()

Ajoute un bouton d'action à l'onglet personnalisé. Vous pouvez ajouter plusieurs boutons via cette méthode.

enableUrlBarHiding()

Permet de masquer la barre d'URL lorsque l'utilisateur fait défiler la page vers le bas.

setActionButton()

Définit le bouton d'action qui s'affiche dans la barre d'outils avec le comportement de teinte par défaut.

À gauche, un téléphone affichant une application utilisant setActionButton()(), et à droite, un autre téléphone sans l'API

setCloseButtonIcon()

Définit le bouton de fermeture personnalisé qui s'affiche dans la barre d'outils.

À gauche, un téléphone affichant une application utilisant setCloseButtonIcon() et à droite, un autre téléphone sans l'API

setCloseButtonPosition()

Définit l'icône du bouton de fermeture pour l'onglet personnalisé.

À gauche, un téléphone affichant une application utilisant setCloseButtonPosition() et à droite, un téléphone distinct sans l'API

setColorScheme()

Définit le jeu de couleurs à appliquer à l'interface utilisateur dans l'onglet personnalisé.

À gauche, un téléphone affichant une application utilisant setColorScheme() et à droite, un autre téléphone sans l'API

setColorSchemeParams()

Définit le jeu de couleurs à appliquer à l'interface utilisateur dans l'onglet personnalisé.

À gauche, un téléphone affichant une application utilisant setColorSchemeParams() et à droite, un autre téléphone sans l'API

setDefaultColorSchemeParams()

Définit CustomTabColorSchemeParams() pour le jeu de couleurs donné. Vous pouvez ainsi spécifier deux couleurs de barre d'outils différentes pour les thèmes clair et sombre.

À gauche, un téléphone affichant une application utilisant setDefaultColorSchemeParams() et à droite, un autre téléphone sans l'API

setDefaultShareMenuItemEnabled()

Définissez si un élément de partage par défaut est ajouté au menu.

setExitAnimations()

Définit les animations de sortie.

setInitialActivityHeightPx()

Définit la hauteur initiale de l'activité de l'onglet personnalisé en pixels avec le comportement de redimensionnement par défaut. L'onglet personnalisé se comportera comme une bottom sheet. On parle souvent d'onglet personnalisé partiel.

À gauche, un téléphone affichant une application utilisant setInitialActivityHeightPx() et à droite, un autre téléphone sans l'API

setNavigationBarColor()

Définit la couleur de la barre de navigation. N'a aucun effet sur les versions d'API antérieures à L.

setNavigationBarDividerColor()

setSecondaryToolbarColor()

Définit la couleur de la barre d'outils secondaire.

setShareState()

Définit l'état de partage à appliquer à l'onglet personnalisé.

À gauche, un téléphone affichant une application utilisant setShareState() et à droite, un téléphone distinct sans l'API

setShowTitle()

Indique si le titre doit s'afficher dans l'onglet "Personnalisé".

À gauche, un téléphone affichant une application utilisant setShowTitle() et à droite, un téléphone distinct sans l'API

setStartAnimations()

Définit les animations de démarrage.

setToolbarColor()

Définit la couleur de la barre d'outils. Sous Android L et versions ultérieures, cette couleur est également appliquée à la barre d'état.

setToolbarCornerRadiusDp()

Définit les rayons des coins supérieurs de la barre d'outils en dp.

setUrlBarHidingEnabled()

Définissez si la barre d'URL doit être masquée lorsque l'utilisateur fait défiler la page vers le bas.

CustomTabsClient

CustomTabsClient est une classe facultative permettant de communiquer avec un CustomTabsService et de créer des CustomTabsSession à partir de celui-ci.

warmup()

Préchauffez le processus du navigateur.

CustomTabsSession

CustomTabsSession est une classe facultative que vous pouvez fournir à une instance de CustomTabsIntent.Builder(). Cette classe vous permet de gérer toute communication avec l'onglet personnalisé.

setEngagementSignalsCallback()

Définit un EngagementSignalsCallback pour recevoir des rappels pour les événements liés à l'engagement de l'utilisateur avec la page Web dans l'onglet.

isEngagementSignalsApiAvailable()

Indique si l'API Engagement Signals est disponible. La disponibilité de l'API Engagement Signals peut changer au moment de l'exécution.

mayLaunchUrl()

Indique au navigateur une navigation probable vers une URL. L'URL la plus probable doit être spécifiée en premier. Une liste d'autres URL possibles peut également être fournie. Elles sont considérées comme moins probables que la première et doivent être triées par ordre décroissant de priorité. Ces URL supplémentaires peuvent être ignorées. Tous les appels précédents à cette méthode seront dépriorisés.