Navegadores compatibles

Patrick Kettner
Patrick Kettner

Las pestañas personalizadas son una excelente opción para crear una experiencia de navegador personalizada directamente dentro de tu app, pero no son una sola cosa. Las pestañas personalizadas se basan en el sistema de intents y son una colección de solicitudes de opciones configurables que se envían al navegador preferido del usuario final. Depende de cada navegador implementar las distintas opciones. La disponibilidad de las funciones de pestañas personalizadas puede variar entre los navegadores Android debido a diferencias en la implementación.

A continuación, se muestra una comparación de algunos navegadores del ecosistema de Android. La gran mayoría de los navegadores de Android cuentan con cierto nivel de compatibilidad. Las tablas no son exhaustivas, sino que ilustran el nivel de asistencia que podrías recibir. Debes investigar los navegadores predeterminados de las personas que usan tu aplicación y asegurarte de estar programando de manera defensiva.

CustomTabsIntent.Builder

CustomTabsIntent.Builder crea pestañas personalizadas. Existen varias formas de configurar tu pestaña personalizada para ayudar a que se adapte de la manera más fluida posible a tu app a través de una colección de métodos integrados, que se enumeran a continuación.

addDefaultShareMenuItem()

addDefaultShareMenuItem() agrega un botón para compartir predeterminado a la barra de herramientas de Pestañas personalizadas, lo que permite al usuario compartir la página web actual a través de varias apps en su dispositivo.

addMenuItem()

Agrega un elemento de menú.

A la izquierda, un teléfono en el que se muestra una app que usa addMenuItem() y, a la derecha, un teléfono independiente sin la API.

addToolbarItem()

Agrega un botón de acción a la pestaña personalizada. Se pueden agregar varios botones a través de este método.

enableUrlBarHiding()

Permite que la barra de URL se oculte a medida que el usuario se desplaza hacia abajo en la página.

setActionButton()

Establece el botón de acción que se muestra en la barra de herramientas con comportamiento de tono predeterminado.

A la izquierda, un teléfono en el que se muestra una app que usa setActionButton() y, a la derecha, un teléfono independiente sin la API.

setCloseButtonIcon()

Establece el botón de cierre personalizado que se muestra en la barra de herramientas.

A la izquierda, se muestra un teléfono con una app que usa setCloseButtonIcon() y, a la derecha, un teléfono independiente sin la API.

setCloseButtonPosition()

Establece el ícono del botón Cerrar para la pestaña personalizada.

En el lado izquierdo, se muestra un teléfono con una app que usa setCloseButtonPosition() y, a la derecha, otro teléfono sin la API.

setColorScheme()

Establece el esquema de colores que se debe aplicar a la interfaz de usuario en la pestaña personalizada.

A la izquierda, un teléfono que muestra una app con setColorScheme() y, a la derecha, un teléfono independiente sin la API.

setColorSchemeParams()

Establece el esquema de colores que se debe aplicar a la interfaz de usuario en la pestaña personalizada.

A la izquierda, un teléfono muestra una app que utiliza setColorSchemeParams() y, a la derecha, un teléfono independiente sin la API.

setDefaultColorSchemeParams()

Configura CustomTabColorSchemeParams() para el esquema de colores determinado. Esto permite especificar dos colores diferentes de la barra de herramientas para esquemas claros y oscuros.

A la izquierda, un teléfono muestra una app que utiliza setDefaultColorSchemeParams() y, a la derecha, un teléfono independiente sin la API.

setDefaultShareMenuItemEnabled()

Establece si se agregará al menú un elemento compartido predeterminado.

setExitAnimations()

Establece las animaciones de salida.

setInitialActivityHeightPx()

Establece la altura inicial en píxeles de la Actividad de pestaña personalizada con el comportamiento de cambio de tamaño predeterminado. La pestaña Personalizar se comportará como una hoja inferior. Por lo general, esta pestaña se denomina pestaña personalizada parcial.

En el lado izquierdo, se muestra un teléfono con una app que usa setInitialActivityHeightPx() y, a la derecha, un teléfono independiente sin la API.

setNavigationBarColor()

Establece el color de la barra de navegación. No tiene efecto en versiones de API inferiores a L.

setNavigationBarDividerColor()

setSecondaryToolbarColor()

Establece el color de la barra de herramientas secundaria.

setShareState()

Establece el estado de uso compartido que se debe aplicar a la pestaña personalizada.

A la izquierda, un teléfono en el que se muestra una app que usa setShareState() y, a la derecha, un teléfono independiente sin la API.

setShowTitle()

Establece si el título debe mostrarse en la pestaña personalizada.

A la izquierda, un teléfono en el que se muestra una app que usa setShowTitle() y, a la derecha, un teléfono independiente sin la API.

setStartAnimations()

Establece las animaciones de inicio.

setToolbarColor()

Establece el color de la barra de herramientas. En Android L y versiones posteriores, este color también se aplica a la barra de estado.

setToolbarCornerRadiusDp()

Establece los radios de la esquina superior de la barra de herramientas en dp.

setUrlBarHidingEnabled()

Establece si la barra de URLs se debe ocultar a medida que el usuario se desplaza hacia abajo en la página.

CustomTabsClient

CustomTabsClient es una clase opcional para comunicarse con un CustomTabsService y crear CustomTabsSession a partir de él.

calentamiento()

Precaliente el proceso del navegador.

CustomTabsSession

CustomTabsSession es una clase opcional que puedes proporcionar a una instancia de CustomTabsIntent.Builder(). Cuando se usa, puedes emplear esta clase para controlar cualquier comunicación con la pestaña personalizada.

setEngagementSignalsCallback()

Configura un EngagementSignalsCallback para recibir devoluciones de llamadas de eventos relacionados con la participación del usuario con la página web dentro de la pestaña.

isEngagementSignalsApiAvailable()

Muestra si la API de Engagement Signals está disponible. La disponibilidad de la API de Engagement Signals puede cambiar durante el tiempo de ejecución.

mayLaunchUrl()

Informa al navegador sobre una posible navegación a una URL en el futuro. Primero, se debe especificar la URL más probable. De manera opcional, se puede proporcionar una lista de otras URLs posibles. Se tratan como menos probables que el primero y se deben ordenar de forma descendente en orden de prioridad. Es posible que se ignoren estas URLs adicionales. Se anulará la prioridad de todas las llamadas anteriores a este método.