Suporte ao navegador

Patrick Kettner
Patrick Kettner

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.

À esquerda, um smartphone mostrando um app usando addMenuItem(). À direita, um smartphone separado sem a API

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.

À esquerda, um smartphone mostrando um app usando setActionButton()(). À direita, um smartphone separado sem a API

setCloseButtonIcon()

Define o botão Fechar personalizado que é exibido na barra de ferramentas.

À esquerda, um smartphone mostrando um app usando setCloseButtonIcon() e, à direita, um smartphone separado sem a API

setCloseButtonPosition()

Define o ícone do botão Fechar da guia personalizada.

À esquerda, um smartphone mostrando um app usando setCloseButtonPosition() e, à direita, um smartphone separado sem a API

setColorScheme()

Define o esquema de cores que deve ser aplicado à interface do usuário na guia personalizada.

À esquerda, um smartphone mostrando um app usando setColorScheme() e, à direita, um smartphone separado sem a API

setColorSchemeParams()

Define o esquema de cores que deve ser aplicado à interface do usuário na guia personalizada.

À esquerda, um smartphone mostrando um app usando setColorSchemeParams(). À direita, um smartphone separado sem a API

setDefaultColorSchemeParams()

Define CustomTabColorSchemeParams() para o esquema de cores especificado. Isso permite especificar duas cores diferentes na barra de ferramentas para esquemas claros e escuros.

À esquerda, um smartphone mostrando um app usando setDefaultColorSchemeParams(). À direita, um smartphone separado sem a API

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.

À esquerda, um smartphone mostrando um app usando setInitialActivityHeightPx() e, à direita, um smartphone separado sem a API

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.

À esquerda, um smartphone mostrando um app usando setShareState(). À direita, um smartphone separado sem a API

setShowTitle()

Define se o título deve ser exibido na guia personalizada.

À esquerda, um smartphone mostrando um app usando setShowTitle() e, à direita, um smartphone separado sem a API

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.