Las pestañas personalizadas de Android proporcionan una experiencia de navegador completa, segura y fluida directamente en el flujo de acceso a la red para portales cautivos, como los que se encuentran en aeropuertos, hoteles y aviones. Al integrar el navegador principal del usuario en el proceso de autenticación, las pestañas personalizadas habilitan funciones avanzadas, como el autocompletado con un solo toque para credenciales y pagos, la transmisión protegida por DRM y la conectividad coherente para los usuarios con funciones de seguridad, como las VPN y el DNS privado. Para obtener más información sobre las pestañas personalizadas, consulta la descripción general de las pestañas personalizadas de Android.
Beneficios en comparación con WebView heredado
La integración del navegador principal del usuario a través de pestañas personalizadas resuelve varias limitaciones funcionales inherentes a los flujos de autenticación heredados basados en WebView para los operadores de redes:
- Transacciones optimizadas: La interfaz admite el autocompletado con un solo toque para las credenciales y la información de pago almacenada, lo que reduce la entrada manual de datos durante el proceso de acceso. (Consulta la Figura 1).
- Compatibilidad con contenido multimedia: La plataforma admite contenido protegido por DRM (como Widevine), lo que permite la reproducción de transmisiones de video encriptadas directamente en el portal. (Consulta la Figura 2).
- Compatibilidad con la configuración de seguridad: Las pestañas personalizadas mantienen la funcionalidad del portal para los dispositivos que usan VPN o DNS privados, funciones de seguridad que a menudo provocan que fallen los redireccionamientos estándar del navegador.
- Consistencia de la interfaz: Las pestañas personalizadas se integran directamente con el navegador del sistema, lo que proporciona las mismas herramientas funcionales y elementos de la IU disponibles en una sesión completa del navegador.
- Persistencia en segundo plano: El portal sigue funcionando en segundo plano y sirve como punto de acceso persistente durante todo el período de conexión.
Figura 1: Entrada manual (WebView) frente a autocompletado (Custom Tabs).
Figura 2: No hay video (WebView) en comparación con la reproducción de video (Custom Tabs).
Flujo de conexión y descubrimiento de pestañas personalizadas
Si bien las pestañas personalizadas proporcionan la interfaz, la API de Captive Portal administra el flujo de inteligencia de descubrimiento a conexión:
- Detección: La red anuncia su compatibilidad con la API a través de la opción 114 de DHCP.
- Interacción: El dispositivo Android consulta el extremo de la API para recuperar una carga útil JSON que contiene el estado de la red.
- Conexión: Si la respuesta JSON indica que se deben usar pestañas personalizadas, el sistema abre el portal en un entorno de navegador de alto rendimiento en lugar de una ventana básica del sistema.
La API de Captive Portal permite que los dispositivos Android detecten si existe un portal cautivo con el campo captive. La API integra otros campos, como venue-info-url y seconds-remaining, en la IU del sistema Android.
Figura 3: Descubrimiento de la API del portal cautivo para el flujo de conexión.
Habilita las pestañas personalizadas de Android
Para admitir el flujo de pestañas personalizadas, los operadores de redes deben implementar la API de Captive Portal y habilitarla a través de la configuración en JSON.
Requisitos
Para habilitar las pestañas personalizadas para el acceso al portal cautivo, se requiere lo siguiente:
- Dispositivo que ejecuta Android 12 y versiones posteriores, y que admite actualizaciones del sistema de Google Play (consulta Mainline) a través del módulo
CaptivePortalLoginde Mainline. - Se agregó compatibilidad con la API de Captive Portal (RFC 8908). Para obtener más información, consulta Compatibilidad con la API del portal cautivo.
Habilita las pestañas personalizadas de Android
Si tu red ya admite la API de Captive Portal (RFC 8908), agrega el siguiente par clave-valor a tu objeto de respuesta JSON existente para habilitar el flujo de pestañas personalizadas:
| Clave | Valor | Descripción |
|---|---|---|
x-android-use-custom-tabs |
361335020 |
Este valor representa el número de versión del módulo Captive Portal Login Mainline lanzado en enero de 2026. Los dispositivos con una actualización de módulo igual o posterior a esta versión usan el flujo de acceso de pestañas personalizadas. |
Este objeto JSON de ejemplo incluye todos los atributos del portal cautivo compatibles con Android:
{
"captive": true,
"user-portal-url": "https://login.example.com",
"venue-info-url": "https://venue.example.com",
"seconds-remaining": 3600,
"x-android-use-custom-tabs": 361335020
}
Estos son los atributos de JSON disponibles para el portal cautivo:
captive: Se establece entruesi se requiere autenticación; se establece enfalsesi el usuario ya está en línea.user-portal-url: Es la URL de la página de acceso o de pago.venue-info-url: Es un vínculo a tu sitio para obtener información (por ejemplo, detalles de vuelos o mapas).seconds-remaining: Indica el tiempo restante (en segundos) durante el que se espera que el dispositivo mantenga una conexión a Internet.x-android-use-custom-tabs: Controla si el dispositivo usa la pestaña personalizada cuando está disponible.
Compatibilidad con la API de Captive Portal
Si tu red no admite la API del portal cautivo, sigue estos pasos para habilitarla y el flujo de pestañas personalizadas.
Actualiza la configuración del servidor DHCP para incluir la opción 114 de DHCP.
Valor: Proporciona la URL HTTPS completa del archivo JSON generado de forma dinámica que contiene información del portal cautivo (por ejemplo,
https://api.yourvenue.com/status).Resultado: Cuando un dispositivo Android se une a la red, consulta la API proporcionada en lugar de esperar un redireccionamiento del navegador.
Configura tu servidor de API para que responda a una solicitud HTTP GET en la URL proporcionada con un archivo JSON que informe al dispositivo sobre el estado actual del portal.
Requisito de HTTPS: Tu servidor de API debe usar un certificado HTTPS válido.
Respaldo de seguridad: Si el certificado no es válido o está autofirmado, el dispositivo recurre al comportamiento heredado del portal cautivo.
Comportamiento de la detección de portales cautivos en Android
La API de Captive Portal proporciona una alternativa confiable a las sondas de red estándar de Android para detectar la existencia de portales cautivos, lo que evita las inconsistencias comunes.
Los dispositivos Android envían sondeos simultáneos de HTTP y HTTPS a URLs de validación específicas para verificar el acceso a la red. Si los sondeos no tienen un éxito coherente (por ejemplo, si el sondeo de HTTP se realiza correctamente, pero el de HTTPS no), se genera un estado de conectividad parcial, que puede impedir que se muestre automáticamente la app de acceso.
La API de Captive Portal hace que la detección sea más confiable con el siguiente comportamiento de detección:
- Si la API informa
"captive": true, el sistema reconoce que está detrás de un portal y omite los sondeos estándar para mostrar de inmediato la interfaz de acceso. - Si la API informa
"captive": false, el sistema continúa con los sondeos estándar, lo que requiere que tanto los sondeos HTTP como los HTTPS se realicen correctamente antes de confirmar el acceso completo a Internet.