導入 Android 自訂分頁,以便登入網頁認證入口

Android 自訂分頁提供功能齊全、安全無虞且流暢的瀏覽器體驗,可直接在網頁認證入口的網路登入流程中使用,例如機場、飯店和飛機上的網路。透過將使用者的主要瀏覽器整合至驗證程序,自訂分頁可啟用進階功能,包括一鍵自動填入憑證和付款資訊、受 DRM 保護的串流,以及為使用 VPN 和私人 DNS 等安全防護功能的使用者提供穩定連線。如要進一步瞭解自訂分頁,請參閱「Android 自訂分頁總覽」。

優於舊版 WebView 的優點

使用自訂分頁整合使用者的主要瀏覽器,可解決網路業者舊版 WebView 型驗證流程的幾項功能限制:

  • 簡化交易:介面支援一鍵自動填入憑證和已儲存的付款資訊,減少登入程序中手動輸入資料的次數。(請參閱圖 1)。
  • 媒體相容性:平台支援受數位版權管理保護的內容 (例如 Widevine),可直接在入口網站中播放加密的影片串流。(請參閱圖 2)。
  • 支援安全設定:如果裝置使用 VPN 或私人 DNS,標準瀏覽器通常會重新導向失敗,但自訂分頁可維持入口網站功能。
  • 介面一致性:自訂分頁會直接與系統瀏覽器整合,提供與完整瀏覽器工作階段相同的實用工具和 UI 元素。
  • 背景持續性:入口網會在背景保持運作,在連線期間做為持續存取點。

手動輸入網頁認證入口資訊和自動填入

圖 1. 手動輸入 (WebView) 與自動填入 (自訂分頁)。

網頁認證入口影片播放

圖 2. 沒有影片 (WebView) 與影片播放 (自訂分頁)。

自訂分頁探索和連線流程

Custom Tabs 提供介面,而 Captive Portal API 則管理探索到連線的智慧流程:

  1. 探索:網路會使用 DHCP 選項 114 宣傳其 API 支援。
  2. 互動:Android 裝置會查詢 API 端點,擷取包含網路狀態的 JSON 酬載。
  3. 連線:如果 JSON 回應信號表示要使用自訂分頁,系統會在高效能的瀏覽器環境中開啟入口網站,而不是在基本系統視窗中開啟。

Android 裝置可透過網頁認證入口 API,使用 captive 欄位偵測網頁認證入口是否存在。這項 API 會將 venue-info-urlseconds-remaining 等其他欄位整合至 Android 系統 UI。

網頁認證入口探索到連線流程

圖 3. 網頁認證入口 API 探索到連線流程。

啟用 Android 自訂分頁

如要支援自訂分頁流程,網路業者必須實作 Captive Portal API,並透過 JSON 設定選擇加入。

需求條件

如要啟用自訂分頁,以便登入網頁認證入口,必須符合下列條件:

  • 搭載 Android 12 以上版本,且支援透過 Mainline CaptivePortalLogin 模組進行 Google Play 系統更新的裝置 (請參閱「Mainline」)。
  • 支援網頁認證入口 API (RFC 8908)。詳情請參閱「支援 Captive Portal API」。

選擇加入 Android 自訂分頁

如果網路已支援 Captive Portal API (RFC 8908),請在現有的 JSON 回應物件中新增下列鍵/值組合,啟用自訂分頁流程:

說明
x-android-use-custom-tabs 361335020 這個值代表 2026 年 1 月發布的 Captive Portal Login Mainline 模組版本號碼。如果裝置的模組更新版本與這個版本相同或較新,就會使用自訂分頁登入流程。

這個 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:登入或付款頁面的網址。
  • venue-info-url:提供資訊的網站連結 (例如航班詳細資料或地圖)。
  • seconds-remaining:表示裝置預計能維持網際網路連線的剩餘時間 (以秒為單位)。
  • x-android-use-custom-tabs:控制裝置是否使用自訂分頁 (如有)。

支援網頁認證入口 API

如果網路不支援 Captive Portal API,請按照下列步驟啟用 Captive Portal API 和自訂分頁流程。

  1. 更新 DHCP 伺服器設定,加入 DHCP 選項 114。

    • 值:提供動態產生的 JSON 檔案完整 HTTPS 網址,其中包含連線驗證入口網站資訊 (例如 https://api.yourvenue.com/status)。

    • 結果:Android 裝置加入網路時,會查詢提供的 API,而不是等待瀏覽器重新導向。

  2. 設定 API 伺服器,以 JSON 檔案回應所提供網址的 HTTP GET 要求,向裝置回報入口網站的目前狀態。

    • HTTPS 規定:您的 API 伺服器必須使用有效的 HTTPS 憑證。

    • 安全後備機制:如果憑證無效或為自簽憑證,裝置會改回使用舊版強制回應入口網站行為。

Android 網頁認證入口偵測行為

網頁認證入口 API 可做為標準 Android 網路探查的可靠替代方案,用於偵測網頁認證入口是否存在,並略過常見的不一致情況。

Android 裝置會同時將 HTTP 和 HTTPS 探查傳送至特定驗證網址,藉此檢查網路存取權。如果探查結果不一致 (例如 HTTP 成功但 HTTPS 失敗),就會導致部分連線狀態,進而阻止系統自動顯示登入應用程式。

網頁認證入口 API 會使用下列偵測行為,提高偵測可靠性:

  • 如果 API 回報 "captive": true,系統會辨識出該 API 位於入口網站後方,並略過標準探測,立即顯示登入介面。
  • 如果 API 回報 "captive": false,系統會繼續進行標準探測,且 HTTP 和 HTTPS 探測都必須成功,系統才會確認完整網際網路存取權。