Как реализовать вкладки Android для авторизации на странице входа

Встроенные вкладки Android – это полнофункциональный, безопасный и удобный браузер, который можно использовать прямо в процессе входа в сеть через страницы авторизации, например в аэропортах, гостиницах и самолетах. Благодаря интеграции основного браузера пользователя в процесс аутентификации вкладки Custom Tabs поддерживают расширенные функции, в том числе автозаполнение учетных данных и платежных данных в одно нажатие, потоковую передачу контента с защитой DRM и стабильное подключение для пользователей, использующих такие функции безопасности, как VPN и частный DNS. Подробнее о специальных вкладках Android…

Преимущества по сравнению с устаревшим WebView

Интеграция основного браузера пользователя с помощью специальных вкладок позволяет устранить ряд функциональных ограничений, присущих устаревшим процессам аутентификации на основе WebView для операторов связи:

  • Удобные транзакции. Интерфейс поддерживает автозаполнение учетных данных и сохраненной платежной информации в один клик, что позволяет сократить объем ручного ввода данных при входе в аккаунт. (см. рисунок 1).
  • Совместимость с медиаконтентом. Платформа поддерживает контент с защитой DRM (например, Widevine), позволяя воспроизводить зашифрованные видеопотоки непосредственно на портале. (см. рис. 2).
  • Поддержка конфигураций безопасности. В пользовательских вкладках сохраняется функциональность портала для устройств, использующих VPN или частный DNS, функции безопасности, которые часто приводят к сбоям стандартных переадресаций браузера.
  • Единообразие интерфейса. Специальные вкладки напрямую интегрируются с системным браузером, предоставляя те же функциональные инструменты и элементы пользовательского интерфейса, что и в полнофункциональном браузере.
  • Работа в фоновом режиме. Портал продолжает работать в фоновом режиме, служа постоянной точкой доступа на протяжении всего периода подключения.

Ручной ввод данных на странице входа и автозаполнение

Рисунок 1. Ввод вручную (WebView) и автозаполнение (специальные вкладки).

Воспроизведение видео на странице входа

Рисунок 2. Нет видео (WebView) или воспроизведение видео (вкладки Chrome).

Обнаружение специальных вкладок и подключение к ним

В то время как вкладки Custom Tabs предоставляют интерфейс, Captive Portal API управляет интеллектуальным потоком обнаружения и подключения:

  1. Обнаружение. Сеть сообщает о поддержке API с помощью параметра DHCP 114.
  2. Взаимодействие. Устройство Android запрашивает конечную точку API, чтобы получить полезную нагрузку JSON, содержащую статус сети.
  3. Подключение. Если в ответе JSON указано, что нужно использовать специальные вкладки, система открывает портал в высокопроизводительной среде браузера, а не в обычном системном окне.

Captive Portal API позволяет устройствам Android определять наличие страницы входа с помощью поля captive. API интегрирует другие поля, такие как venue-info-url и seconds-remaining, в интерфейс системы Android.

Обнаружение страницы входа и подключение к сети

Рисунок 3. Обнаружение API страниц входа для подключения.

Включить специальные вкладки Android

Чтобы поддерживать вкладки Custom Tabs, операторы сетей должны реализовать Captive Portal API и включить его в конфигурации JSON.

Требования

Чтобы включить вкладки Chrome для входа на страницу входа, необходимо следующее:

  • Устройство с Android 12 или более поздней версии, поддерживающее обновления системы через Google Play (см. Mainline) через модуль Mainline CaptivePortalLogin.
  • Поддержка API страницы входа (RFC 8908). Подробнее о поддержке API страницы входа…

Как включить специальные вкладки Chrome для Android

Если ваша сеть уже поддерживает Captive Portal API (RFC 8908), добавьте в существующий объект ответа JSON следующую пару "ключ-значение", чтобы включить поток вкладок Custom Tabs:

Ключ Значение Описание
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 – определяет, будет ли устройство использовать специальную вкладку, если она доступна.

Поддержка Captive Portal API

Если ваша сеть не поддерживает Captive Portal API, выполните следующие действия, чтобы включить Captive Portal API и поток вкладок Custom Tabs.

  1. Обновите конфигурацию сервера DHCP, чтобы включить вариант DHCP 114.

    • Значение. Укажите полный URL с протоколом HTTPS для динамически создаваемого файла JSON, содержащего информацию о странице входа (например, https://api.yourvenue.com/status).

    • Результат. Когда устройство Android подключается к сети, оно запрашивает предоставленный API, а не ждет переадресации браузера.

  2. Настройте сервер API так, чтобы он отвечал на HTTP-запрос GET по указанному URL-адресу файлом JSON, в котором содержится информация о текущем состоянии портала.

    • Требование к HTTPS. На сервере API должен использоваться действительный сертификат HTTPS.

    • Резервный вариант защиты. Если сертификат недействителен или является самоподписанным, устройство переходит к устаревшему поведению при работе с порталом.

Обнаружение страниц входа на устройствах Android

Captive Portal API – это надежная альтернатива стандартным сетевым зондам Android, позволяющая обнаруживать страницы входа и избегать распространенных несоответствий.

Устройства Android проверяют доступ к сети, отправляя одновременные HTTP- и HTTPS-запросы на определенные URL проверки. Несогласованность результатов (например, HTTP-запрос выполнен успешно, а HTTPS-запрос – нет) приводит к состоянию частичного подключения, что может помешать автоматическому отображению приложения для входа.

API страниц входа повышает надежность обнаружения, используя следующие методы:

  • Если API сообщает, что "captive": true, система понимает, что устройство находится за порталом, и пропускает стандартные проверки, чтобы сразу показать интерфейс входа.
  • Если API возвращает значение "captive": false, система выполняет стандартные проверки, требующие успешного выполнения как HTTP-, так и HTTPS-проверок, прежде чем подтвердить полный доступ к интернету.

Отзыв

Чтобы оставить отзыв, напишите нам по адресу android-cct@google.com. Мы можем использовать ваши отзывы для создания и улучшения наших продуктов и функций на благо всех пользователей.