Вкладки Android Custom Tabs обеспечивают полнофункциональный, безопасный и удобный интерфейс браузера непосредственно в процессе авторизации в сети, например, в аэропортах, отелях и самолетах. Интегрируя основной браузер пользователя в процесс аутентификации, Custom Tabs предоставляют расширенные возможности, включая автозаполнение учетных данных и платежей в одно касание, потоковую передачу с защитой DRM и стабильное подключение для пользователей с функциями безопасности, такими как VPN и частный DNS. Для получения дополнительной информации о Custom Tabs см. раздел «Обзор Android Custom Tabs» .
Преимущества по сравнению с устаревшим WebView
Интеграция основного браузера пользователя с помощью пользовательских вкладок устраняет ряд функциональных ограничений, присущих устаревшим методам аутентификации на основе WebView для сетевых операторов:
- Упрощенные транзакции: интерфейс поддерживает автоматическое заполнение учетных данных и сохраненной платежной информации одним касанием, что сокращает ручной ввод данных в процессе входа в систему. (См. Рисунок 1.)
- Совместимость с медиаконтентом: Платформа поддерживает контент, защищенный DRM (например, Widevine), что позволяет воспроизводить зашифрованные видеопотоки непосредственно на портале. (См. Рисунок 2.)
- Поддержка настроек безопасности: Пользовательские вкладки сохраняют функциональность портала для устройств, использующих VPN или частный DNS, — функции безопасности, которые часто приводят к сбоям стандартных перенаправлений браузера.
- Единообразие интерфейса: Пользовательские вкладки интегрируются непосредственно с системным браузером, предоставляя те же функциональные инструменты и элементы пользовательского интерфейса, что и в полноценной сессии браузера.
- Фоновое сохранение состояния: портал продолжает работать в фоновом режиме, выступая в качестве постоянной точки доступа на протяжении всего периода подключения.

Рисунок 1. Ручной ввод (WebView) и автозаполнение (Custom Tabs).

Рисунок 2. Отсутствие видео (WebView) и воспроизведение видео (пользовательские вкладки).
Обнаружение пользовательских вкладок и процесс подключения
В то время как пользовательские вкладки обеспечивают интерфейс, API портала авторизации управляет потоком от обнаружения до получения информации о подключении :
- Обнаружение: Сеть объявляет о поддержке своего API, используя параметр DHCP 114.
- Взаимодействие: Устройство Android отправляет запрос к конечной точке API для получения JSON-данных, содержащих информацию о состоянии сети.
- Подключение: Если в JSON-ответе указано использование пользовательских вкладок, система открывает портал в высокопроизводительной среде браузера, а не в обычном системном окне.
API Captive Portal позволяет устройствам Android определять наличие портала авторизации с помощью captive поля. API интегрирует другие поля, такие как venue-info-url и seconds-remaining в пользовательский интерфейс системы Android.

Рисунок 3. Схема установления соединения через API портала авторизации.
Включить пользовательские вкладки Android
Для поддержки процесса создания пользовательских вкладок сетевым операторам необходимо внедрить API портала авторизации и активировать его через конфигурацию в формате JSON.
Требования
Для включения пользовательских вкладок при входе через портал авторизации необходимо следующее:
- Устройство под управлением Android 12 и выше, поддерживающее системные обновления Google Play (см. Mainline ) через модуль Mainline
CaptivePortalLogin. - Поддержка API портала авторизации ( RFC 8908 ). Подробности см. в разделе «Поддержка API портала авторизации» .
Включите пользовательские вкладки Android
Если ваша сеть уже поддерживает API Captive Portal (RFC 8908), добавьте следующую пару ключ-значение в существующий объект JSON-ответа, чтобы включить поток пользовательских вкладок:
| Ключ | Ценить | Описание |
|---|---|---|
x-android-use-custom-tabs | 361335020 | Это значение представляет собой номер версии основного модуля Captive Portal Login, выпущенного в январе 2026 года. Устройства с обновлением модуля, равным или более новым, используют процесс входа в систему с помощью пользовательских вкладок. |
В этом примере JSON-объекта содержатся все атрибуты портала авторизации, поддерживаемые 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
}
Ниже перечислены доступные атрибуты портала авторизации в формате JSON:
-
captive: Установите значениеtrue, если требуется аутентификация; установите значениеfalseесли пользователь уже находится в сети. -
user-portal-url: URL страницы входа или оплаты. -
venue-info-url: Ссылка на ваш сайт для получения информации (например, о рейсах или картах). -
seconds-remaining: Указывает оставшееся время (в секундах), в течение которого устройство, как ожидается, будет поддерживать интернет-соединение. -
x-android-use-custom-tabs: Определяет, будет ли устройство использовать пользовательскую вкладку, если она доступна.
Поддержка API портала авторизации
Если ваша сеть не поддерживает API портала авторизации, выполните следующие действия, чтобы включить API портала авторизации и поток пользовательских вкладок.
Обновите конфигурацию DHCP-сервера, добавив параметр DHCP 114.
Значение: Укажите полный HTTPS-URL динамически генерируемого JSON-файла, содержащего информацию о портале авторизации (например,
https://api.yourvenue.com/status).Результат: Когда устройство Android подключается к сети, оно отправляет запрос к предоставленному API, вместо того чтобы ждать перенаправления в браузере.
Настройте свой API-сервер так, чтобы он отвечал на HTTP GET-запрос по указанному URL-адресу файлом JSON, информирующим устройство о текущем состоянии портала.
Требование HTTPS: Ваш API-сервер должен использовать действительный сертификат HTTPS.
Резервный режим безопасности: если сертификат недействителен или самоподписан, устройство переключается на устаревшее поведение портала авторизации.
Обнаружение поведения портала авторизации в Android
API Captive Portal предоставляет надежную альтернативу стандартным сетевым зондам Android для обнаружения существования портала авторизации, позволяя обойти распространенные несоответствия.
Устройства Android проверяют наличие доступа к сети, одновременно отправляя HTTP- и HTTPS-запросы на определенные URL-адреса проверки. Нестабильный успех проверки (например, HTTP-запрос проходит успешно, а HTTPS-запрос завершается неудачей) приводит к частичному состоянию подключения , что может препятствовать автоматическому отображению приложения для входа в систему.
API Captive Portal повышает надежность обнаружения, используя следующее поведение при обнаружении:
- Если API выдает сообщение
"captive": true, система распознает, что находится за порталом, и, минуя стандартные проверки, немедленно отображает интерфейс входа в систему. - Если API выдает сообщение
"captive": false, система переходит к стандартным проверкам, требуя успешного завершения как HTTP, так и HTTPS-проверок для подтверждения полного доступа в интернет.