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és sur le système d'intents, les onglets personnalisés regroupent des demandes d'options configurables qui sont envoyées au navigateur préféré de l'utilisateur final. Il revient à chaque navigateur de mettre en œuvre les différentes options. La disponibilité des fonctionnalités des onglets personnalisés peut varier d'un navigateur Android à l'autre en raison des différences d'implémentation.

Vous trouverez ci-dessous un comparatif de certains navigateurs de l'écosystème Android. La plupart des navigateurs sur Android sont compatibles. Les tableaux n'ont pas vocation à être exhaustifs, mais ils illustrent le niveau d'assistance que vous êtes susceptible d'obtenir. Renseignez-vous sur les navigateurs par défaut des personnes qui utilisent votre application et assurez-vous 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 mieux possible à votre application, par le biais d'un ensemble de méthodes intégrées, répertorié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 autre téléphone sans l'API

addToolbarItem()

Ajoute un bouton d'action à l'onglet personnalisé. Cette méthode permet d'ajouter plusieurs boutons.

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 en appliquant le comportement de teinte par défaut.

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

setCloseButtonIcon()

Définit un 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 de l'onglet personnalisé.

À gauche, un téléphone affichant une application avec setCloseButtonPosition() et à droite, un autre téléphone 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é. Cela permet de spécifier deux couleurs différentes dans la barre d'outils, pour un jeu clair et sombre.

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

setDefaultShareMenuItemEnabled()

Indiquez si un élément de partage par défaut doit être ajouté au menu.

setExitAnimations()

Définit les animations de sortie.

setInitialActivityHeightPx()

Définit la hauteur initiale en pixels de l'activité de l'onglet personnalisé avec le comportement de redimensionnement par défaut. L'onglet personnalisé se comporte comme une bottom sheet. Il s'agit souvent d'un onglet personnalisé partiel.

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

setNavigationBarColor()

Définit la couleur de la barre de navigation. N'a aucun effet sur les versions d'API antérieures à la version 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 avec setShareState() et à droite, un autre téléphone sans l'API

setShowTitle()

Détermine si le titre doit être affiché dans l'onglet "Personnalisé".

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

setStartAnimations()

Définit les animations de début.

setToolbarColor()

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

setToolbarCornerRadiusDp()

Définit les rayons du coin supérieur de la barre d'outils en dp.

setUrlBarHidingEnabled()

Indiquez 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 CustomTabsSession à partir de celui-ci.

échauffement()

Préparez le processus du navigateur.

CustomTabsSession

CustomTabsSession est une classe facultative que vous pouvez fournir à une instance de CustomTabsIntent.Builder(). Lorsqu'elle est utilisée, vous pouvez l'utiliser pour gérer toutes les communications avec l'onglet personnalisé.

setEngagementSignalsCallback()

Définit un EngagementSignalsCallback afin de recevoir des rappels pour les événements liés à l'engagement de l'utilisateur avec la page Web de 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 future navigation probable vers une URL. L'URL la plus probable doit être spécifiée en premier. Vous pouvez éventuellement fournir une liste d'autres URL probables. Elles sont traitées comme moins susceptibles que la première et doivent être triées par ordre de priorité décroissante. Ces URL supplémentaires peuvent être ignorées. Une priorité inférieure sera appliquée à tous les appels précédents à cette méthode.