Implementowanie niestandardowych kart Androida na potrzeby logowania do portalu przechwytującego

Niestandardowe karty Chrome na Androidzie zapewniają w pełni funkcjonalne, bezpieczne i płynne korzystanie z przeglądarki bezpośrednio w przepływie logowania do sieci w portalach przechwytujących, takich jak te na lotniskach, w hotelach i samolotach. Dzięki integracji głównej przeglądarki użytkownika z procesem uwierzytelniania niestandardowe karty umożliwiają korzystanie z zaawansowanych funkcji, takich jak autouzupełnianie danych logowania i płatności jednym kliknięciem, przesyłanie strumieniowe treści chronionych DRM oraz spójne połączenie dla użytkowników korzystających z funkcji zabezpieczeń, takich jak VPN i prywatny DNS. Więcej informacji o niestandardowych kartach znajdziesz w artykule Niestandardowe karty Chrome na Androidzie – omówienie.

Zalety w porównaniu ze starszą wersją WebView

Integracja głównej przeglądarki użytkownika za pomocą niestandardowych kart rozwiązuje kilka ograniczeń funkcjonalnych związanych z przepływami uwierzytelniania opartymi na starszej wersji WebView w przypadku operatorów sieci:

  • Usprawnione transakcje: interfejs obsługuje autouzupełnianie danych logowania i danych do płatności jednym dotknięciem, co zmniejsza ilość ręcznie wprowadzanych danych podczas procesu logowania. (Patrz rysunek 1).
  • Zgodność z multimediami: platforma obsługuje treści chronione DRM (np. Widevine), co umożliwia odtwarzanie zaszyfrowanych strumieni wideo bezpośrednio w portalu. (Patrz rysunek 2).
  • Obsługa konfiguracji zabezpieczeń: niestandardowe karty zachowują funkcjonalność portalu na urządzeniach korzystających z VPN lub prywatnego DNS, czyli funkcji zabezpieczeń, które często powodują niepowodzenie standardowych przekierowań przeglądarki.
  • Spójność interfejsu: karty niestandardowe są zintegrowane bezpośrednio z przeglądarką systemową, co zapewnia te same narzędzia funkcjonalne i elementy interfejsu dostępne w sesji przeglądarki z pełną funkcjonalnością.
  • Trwałość w tle: portal pozostaje aktywny w tle, służąc jako stały punkt dostępu przez cały okres połączenia.

Ręczne wpisywanie danych w portalu przechwytującym i automatyczne wypełnianie

Rysunek 1. Ręczne wprowadzanie danych (WebView) a autouzupełnianie (niestandardowe karty).

Odtwarzanie filmów w portalu przechwytującym

Rysunek 2. Brak wideo (WebView) a odtwarzanie wideo (niestandardowe karty).

Wykrywanie niestandardowych kart i przepływ połączenia

Niestandardowe karty zapewniają interfejs, a interfejs Captive Portal API zarządza przepływem informacji od wykrycia do połączenia:

  1. Wykrywanie: sieć reklamuje obsługę interfejsu API za pomocą opcji DHCP 114.
  2. Interakcja: urządzenie z Androidem wysyła zapytanie do punktu końcowego interfejsu API, aby pobrać ładunek JSON zawierający stan sieci.
  3. Połączenie: jeśli odpowiedź JSON sygnalizuje użycie niestandardowych kart, system otwiera portal w środowisku przeglądarki o wysokiej wydajności zamiast w podstawowym oknie systemowym.

Interfejs Captive Portal API umożliwia urządzeniom z Androidem wykrywanie, czy istnieje portal przechwytujący, za pomocą pola captive. Interfejs API integruje inne pola, takie jak venue-info-url i seconds-remaining, z interfejsem systemu Android.

Wykrywanie portalu przechwytującego i nawiązywanie połączenia

Rysunek 3. Przepływ od wykrycia do połączenia w interfejsie Captive Portal API.

Włączanie niestandardowych kart Chrome na Androidzie

Aby obsługiwać przepływ niestandardowych kart, operatorzy sieci muszą zaimplementować interfejs Captive Portal API i wyrazić zgodę w konfiguracji JSON.

Wymagania

Aby włączyć niestandardowe karty na potrzeby logowania do portalu przechwytującego, musisz spełnić te wymagania:

  • Urządzenie z Androidem 12 lub nowszym, które obsługuje aktualizacje systemu Google Play (patrz Mainline) za pomocą modułu Mainline CaptivePortalLogin.
  • Obsługa interfejsu Captive Portal API (RFC 8908). Szczegółowe informacje znajdziesz w artykule Obsługa interfejsu Captive Portal API.

Wyrażanie zgody na używanie niestandardowych kart Chrome na Androidzie

Jeśli Twoja sieć obsługuje już interfejs Captive Portal API (RFC 8908), dodaj do istniejącego obiektu odpowiedzi JSON tę parę klucz-wartość, aby włączyć przepływ niestandardowych kart:

Klucz Wartość Opis
x-android-use-custom-tabs 361335020 Ta wartość reprezentuje numer wersji modułu Mainline Captive Portal Login wydanego w styczniu 2026 r. Urządzenia z aktualizacją modułu w tej wersji lub nowszej używają przepływu logowania za pomocą niestandardowych kart.

Ten przykładowy obiekt JSON zawiera wszystkie atrybuty portalu przechwytującego obsługiwane przez Androida:

{
  "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
}

Oto dostępne atrybuty portalu przechwytującego w formacie JSON:

  • captive: ustaw na true, jeśli wymagane jest uwierzytelnianie; ustaw na false, jeśli użytkownik jest już online.
  • user-portal-url: adres URL strony logowania lub płatności.
  • venue-info-url: link do Twojej witryny z informacjami (np. szczegółami lotu lub mapami).
  • seconds-remaining: wskazuje pozostały czas (w sekundach), przez który urządzenie ma utrzymywać połączenie z internetem.
  • x-android-use-custom-tabs: określa, czy urządzenie ma używać karty niestandardowej, gdy jest dostępna.

Obsługa interfejsu Captive Portal API

Jeśli Twoja sieć nie obsługuje interfejsu Captive Portal API, wykonaj te czynności, aby włączyć interfejs Captive Portal API i przepływ niestandardowych kart.

  1. Zaktualizuj konfigurację serwera DHCP, aby uwzględnić opcję DHCP 114.

    • Wartość: podaj pełny adres URL HTTPS dynamicznie generowanego pliku JSON, który zawiera informacje o portalu przechwytującym (np. https://api.yourvenue.com/status).

    • Wynik: gdy urządzenie z Androidem dołączy do sieci, wyśle zapytanie do podanego interfejsu API zamiast czekać na przekierowanie przeglądarki.

  2. Skonfiguruj serwer API tak, aby odpowiadał na żądanie GET pod podanym adresem URL za pomocą pliku JSON, który informuje urządzenie o bieżącym stanie portalu.

    • Wymaganie dotyczące HTTPS: serwer API musi używać prawidłowego certyfikatu HTTPS.

    • Zabezpieczenie: jeśli certyfikat jest nieprawidłowy lub podpisany samodzielnie, urządzenie powróci do starszego sposobu działania portalu przechwytującego.

Działanie wykrywania portalu przechwytującego na Androidzie

Interfejs Captive Portal API stanowi niezawodną alternatywę dla standardowych sond sieciowych Androida w zakresie wykrywania portalu przechwytującego, co pozwala uniknąć typowych niespójności.

Urządzenia z Androidem sprawdzają dostęp do sieci, wysyłając jednocześnie sondy HTTP i HTTPS do określonych adresów URL weryfikacji. Niespójny wynik sondy (np. HTTP działa, ale HTTPS nie) powoduje stan częściowej łączności, który może uniemożliwić automatyczne wyświetlanie aplikacji do logowania.

Interfejs Captive Portal API sprawia, że wykrywanie jest bardziej niezawodne dzięki tym działaniom:

  • Jeśli interfejs API zgłosi wartość "captive": true, system rozpozna, że urządzenie znajduje się za portalem, i pominie standardowe sondy, aby natychmiast wyświetlić interfejs logowania.
  • Jeśli interfejs API zgłosi wartość "captive": false, system będzie kontynuować standardowe sondy, wymagając, aby zarówno sondy HTTP, jak i HTTPS zakończyły się powodzeniem, zanim potwierdzi pełny dostęp do internetu.

Prześlij opinię

Aby przesłać opinię, wyślij e-maila na adres android-cct@google.com. Możemy wykorzystać Twoją opinię do tworzenia i ulepszania naszych usług i funkcji dla wszystkich użytkowników.