As guias personalizadas são uma ótima opção para criar uma experiência personalizada do navegador diretamente no seu aplicativo, mas elas não são uma coisa só. Desenvolvidas com base no sistema de intents, as guias personalizadas são um conjunto de solicitações de opções configuráveis que são enviadas ao navegador preferido do usuário final. Cabe a cada navegador implementar as várias opções. A disponibilidade dos recursos das guias personalizadas pode variar entre os navegadores Android devido a diferenças de implementação.
Veja a seguir uma comparação de alguns navegadores no ecossistema Android. A grande maioria dos navegadores no Android tem algum nível de suporte. As tabelas não são completas, mas ilustram o nível de suporte que você provavelmente vai encontrar. Pesquise os navegadores padrão das pessoas que usam seu aplicativo e programe de maneira defensiva.
CustomTabsIntent.Builder
O CustomTabsIntent.Builder
cria guias personalizadas. Há diversas maneiras de configurar sua guia personalizada para ajudá-la a se integrar da maneira mais perfeita possível ao seu aplicativo por meio de um conjunto de métodos integrados, que estão listados abaixo.
addDefaultShareMenuItem()
addDefaultShareMenuItem() adiciona um botão de compartilhamento padrão à barra de ferramentas de guias personalizadas, permitindo que o usuário compartilhe a página da Web atual por meio de vários aplicativos no dispositivo.
addMenuItem()
Adiciona um item de menu.
addToolbarItem()
Adiciona um botão de ação à guia personalizada. Vários botões podem ser adicionados com esse método.
enableUrlBarHiding()
Permite que a barra de URL seja ocultada à medida que o usuário rola a página para baixo.
setActionButton()
Define o botão de ação que é exibido na barra de ferramentas com o comportamento de tonalidade padrão.
setCloseButtonIcon()
Define o botão Fechar personalizado que é exibido na barra de ferramentas.
setCloseButtonPosition()
Define o ícone do botão Fechar da guia personalizada.
setColorScheme()
Define o esquema de cores que deve ser aplicado à interface do usuário na guia personalizada.
setColorSchemeParams()
Define o esquema de cores que deve ser aplicado à interface do usuário na guia personalizada.
setDefaultColorSchemeParams()
Define CustomTabColorSchemeParams()
para o esquema de cores especificado. Isso permite especificar duas cores diferentes na barra de ferramentas para esquemas claros e escuros.
setDefaultShareMenuItemEnabled()
Defina se um item de compartilhamento padrão será adicionado ao menu.
setExitAnimations()
Define todas as animações de saída.
setInitialActivityHeightPx()
Define a altura inicial da atividade da guia personalizada em pixels com o comportamento de redimensionamento padrão. A guia "Personalizada" se comportará como uma página inferior. Ela é muitas vezes chamada de Guia personalizada parcial.
setNavigationBarColor()
Define a cor da barra de navegação. Não tem efeito nas versões da API anteriores a L.
setNavigationBarDividerColor()
setSecondaryToolbarColor()
Define a cor da barra de ferramentas secundária.
setShareState()
Define o estado de compartilhamento que deve ser aplicado à guia personalizada.
setShowTitle()
Define se o título deve ser exibido na guia personalizada.
setStartAnimations()
Define as animações de início.
setToolbarColor()
Define a cor da barra de ferramentas. No Android L e versões mais recentes, essa cor também é aplicada à barra de status.
setToolbarCornerRadiusDp()
Define os raios do canto superior da barra de ferramentas em dp.
setUrlBarHidingEnabled()
Defina se a barra do URL deve ser ocultada quando o usuário rola a página para baixo.
CustomTabsClient
CustomTabsClient
é uma classe opcional para se comunicar com uma CustomTabsService
e criar CustomTabsSession
com ela.
aquecimento()
Aqueça o processo do navegador.
CustomTabsSession
CustomTabsSession
é uma classe opcional que pode ser fornecida para uma instância de CustomTabsIntent.Builder()
. Quando usada, é possível utilizar essa classe para lidar com qualquer comunicação com a guia personalizada.
setEngagementSignalsCallback()
Define um EngagementSignalsCallback
para receber callbacks para eventos relacionados ao engajamento do usuário com a página da Web na guia.
isEngagementSignalsApiAvailable()
Retorna se a API Engagement Signals está disponível. A disponibilidade da API Engagement Signals pode mudar durante a execução.
MayLaunchUrl()
Informa o navegador sobre uma possível navegação para um URL. O URL mais provável precisa ser especificado primeiro. Como opção, é possível fornecer uma lista de outros URLs prováveis. Elas são tratadas como menos propensas à primeira e precisam ser classificadas em ordem de prioridade decrescente. Esses URLs adicionais podem ser ignorados. Todas as chamadas anteriores para esse método não terão prioridade.