Android özel sekmeleri, havaalanları, oteller ve uçaklarda bulunanlar gibi giriş portalları için ağa giriş akışında doğrudan tam özellikli, güvenli ve sorunsuz bir tarayıcı deneyimi sunar. Kullanıcının birincil tarayıcısını kimlik doğrulama sürecine entegre eden özel sekmeler, kimlik bilgileri ve ödemeler için tek dokunuşla otomatik doldurma, DRM ile korunan akış ve VPN'ler ile özel DNS gibi güvenlik özelliklerine sahip kullanıcılar için tutarlı bağlantı gibi gelişmiş işlevler sunar. Özel Sekmeler hakkında daha fazla bilgi için Android Özel Sekmelerine Genel Bakış başlıklı makaleyi inceleyin.
Eski WebView'a kıyasla avantajları
Kullanıcının birincil tarayıcısını özel sekmelerle entegre etmek, ağ operatörleri için eski WebView tabanlı kimlik doğrulama akışlarında bulunan çeşitli işlevsel sınırlamaları giderir:
- Kolaylaştırılmış işlemler: Arayüz, kimlik bilgileri ve kayıtlı ödeme bilgileri için tek dokunuşla otomatik doldurmayı destekleyerek giriş işlemi sırasında manuel veri girişini azaltır. (Şekil 1'e bakın.)
- Medya uyumluluğu: Platform, DRM korumalı içeriği (ör. Widevine) destekler ve şifrelenmiş video akışlarının doğrudan portalda oynatılmasını sağlar. (Şekil 2'ye bakın.)
- Güvenlik yapılandırmaları için destek: Özel Sekmeler, VPN veya özel DNS kullanan cihazlarda portal işlevselliğini korur. Bu güvenlik özellikleri, genellikle standart tarayıcı yönlendirmelerinin başarısız olmasına neden olur.
- Arayüz tutarlılığı: Özel Sekmeler doğrudan sistem tarayıcısına entegre olarak tam tarayıcı oturumunda bulunan işlevsel araçları ve kullanıcı arayüzü öğelerini sağlar.
- Arka planda kalıcılık: Portal, bağlantı süresi boyunca kalıcı bir erişim noktası olarak hizmet vererek arka planda çalışmaya devam eder.
Şekil 1. Manuel giriş (WebView) ve otomatik doldurma (özel sekmeler) karşılaştırması.
Şekil 2. Video yok (WebView) ve video oynatma (özel sekmeler).
Özel Sekmeler'i keşfetme ve bağlanma akışı
Özel Sekmeler arayüzü sağlarken Giriş Portalı API'si keşiften bağlantıya kadar olan akışı yönetir:
- Bulma: Ağ, DHCP Seçeneği 114'ü kullanarak API desteğinin reklamını yapar.
- Etkileşim: Android cihaz, ağ durumunu içeren bir JSON yükü getirmek için API uç noktasını sorgular.
- Bağlantı: JSON yanıtı, özel sekmelerin kullanılacağını belirtiyorsa sistem, portalı temel bir sistem penceresi yerine yüksek performanslı bir tarayıcı ortamında açar.
Giriş Portalı API'si, Android cihazların captive alanını kullanarak giriş portalı olup olmadığını algılamasına olanak tanır. API, venue-info-url ve seconds-remaining gibi diğer alanları Android sistem kullanıcı arayüzüne entegre eder.
Şekil 3. Bağlantı akışına giriş portalı API'si keşfi.
Android özel sekmelerini etkinleştirme
Ağ operatörlerinin Özel Sekmeler akışını desteklemek için Captive Portal API'yi uygulaması ve JSON yapılandırması aracılığıyla etkinleştirmesi gerekir.
Şartlar
Giriş portalı girişi için özel sekmelerin etkinleştirilmesi için gerekenler:
- Mainline
CaptivePortalLoginmodülü aracılığıyla Google Play sistem güncellemelerini (Mainline bölümüne bakın) destekleyen Android 12 ve sonraki sürümlerin yüklü olduğu cihaz. - Giriş Portalı API'si (RFC 8908) desteği. Ayrıntılar için Captive Portal API'yi destekleme başlıklı makaleyi inceleyin.
Android özel sekmelerini etkinleştirme
Ağınız zaten Captive Portal API'yi (RFC 8908) destekliyorsa Özel Sekmeler akışını etkinleştirmek için mevcut JSON yanıt nesnenize aşağıdaki anahtar/değer çiftini ekleyin:
| Anahtar | Değer | Açıklama |
|---|---|---|
x-android-use-custom-tabs |
361335020 |
Bu değer, Ocak 2026'da yayınlanan Captive Portal Login Mainline modülünün sürüm numarasını gösterir. Bu sürümle aynı veya daha yeni bir modül güncellemesine sahip cihazlarda Özel Sekmeler oturum açma akışı kullanılır. |
Bu örnek JSON nesnesi, Android tarafından desteklenen tüm captive portal özelliklerini içerir:
{
"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
}
Aşağıda, kullanılabilen JSON captive portal özellikleri verilmiştir:
captive: Kimlik doğrulama gerekiyorsatrue, kullanıcı zaten çevrimiçiysefalseolarak ayarlayın.user-portal-url: Giriş veya ödeme sayfasının URL'si.venue-info-url: Bilgi için sitenizin bağlantısı (ör. uçuş ayrıntıları veya haritalar).seconds-remaining: Cihazın internet bağlantısını sürdürmesi beklenen kalan süreyi (saniye cinsinden) gösterir.x-android-use-custom-tabs: Cihazın, kullanılabilir olduğunda özel sekme kullanıp kullanmayacağını kontrol eder.
Giriş Portalı API'sini destekleme
Ağınız Captive Portal API'yi desteklemiyorsa Captive Portal API'yi ve özel sekmeler akışını etkinleştirmek için aşağıdaki adımları uygulayın.
DHCP seçeneği 114'ü içerecek şekilde DHCP sunucusu yapılandırmanızı güncelleyin.
Değer: Giriş portalı bilgilerini içeren, dinamik olarak oluşturulmuş JSON dosyasının tam HTTPS URL'sini sağlayın (örneğin,
https://api.yourvenue.com/status).Sonuç: Bir Android cihaz ağa katıldığında tarayıcı yönlendirmesini beklemek yerine sağlanan API'yi sorgular.
API sunucunuzu, sağlanan URL'deki bir HTTP GET isteğine, cihaza portalın mevcut durumu hakkında bilgi veren bir JSON dosyasıyla yanıt verecek şekilde yapılandırın.
HTTPS şartı: API sunucunuz geçerli bir HTTPS sertifikası kullanmalıdır.
Güvenlik yedeklemesi: Sertifika geçersizse veya kendinden imzalıysa cihaz, eski captive portal davranışına geri döner.
Android giriş portalı algılama davranışı
Giriş portalı API'si, giriş portalının varlığını algılamak için standart Android ağ yoklamalarına güvenilir bir alternatif sunar ve yaygın tutarsızlıkları atlar.
Android cihazlar, belirli doğrulama URL'lerine eşzamanlı HTTP ve HTTPS sorguları göndererek ağ erişimini kontrol eder. Tutarsız sorgu başarısı (örneğin, HTTP başarılı olur ancak HTTPS başarısız olur) kısmi bağlantı durumuna neden olur. Bu durum, giriş uygulamasının otomatik olarak gösterilmesini engelleyebilir.
Giriş Portalı API'si, aşağıdaki algılama davranışını kullanarak algılamayı daha güvenilir hale getirir:
- API
"captive": truedeğerini bildirirse sistem, API'nin bir portalın arkasında olduğunu anlar ve giriş arayüzünü hemen göstermek için standart sorguları atlar. - API
"captive": falseyanıtını verirse sistem, tam internet erişimini onaylamadan önce hem HTTP hem de HTTPS kontrollerinin başarılı olmasını gerektiren standart kontrollerle devam eder.