Geçici özel sekmelerle kullanıcıların web gizliliğini iyileştirin

Android geliştiricilerinin, uygulama şartlarını karşılamak için bazen geçici bir web deneyimine ihtiyacı vardır. Geçici özel sekme, bir uygulamadan tamamen izole edilmiş bir web tarayıcısı başlatan özel bir özel sekmedir. Bu, oturum açma durumunun tarayıcıyla senkronize edilmemesi gereken kimlik doğrulama stratejileri veya verilerin saklanmaması gereken web oturumları (ör. gizli tarama modu) için kullanılabilir.

Özel Sekmeler varsayılan olarak kullanıcının tarayıcısından durumu ve özellikleri paylaşır. Geçici özel sekmelerde çerezler, önbelleğe alınan dosyalar, geçmiş, kimlik bilgileri ve diğer veriler yalnızca oturumun örneğinin kapsamında bulunur. Özel Sekme Etkinliği kapatıldığında veriler iz bırakmadan silinir.

Özel sekmeler gibi geçici özel sekmeler de işlemler ve kullanıcı arayüzü temalarıyla özelleştirilebilir. Kimlik doğrulama stratejileri için Auth sekmesini zaten kullanıyorsanız geçici tarama, başlatma amacına eklenebilir. Bu sayede sürece başka bir gizlilik katmanı daha eklenebilir.

Geçici özel sekmeler, Chrome 130'dan itibaren kullanılabilir ve tek bir kod satırı ile oluşturulabilir. Özelliğin kullanılamadığı kullanıcılar için geçici tarama özelliğinin etkin olup olmadığını doğrulayabilir ve yedek alternatifleri sorunsuz bir şekilde entegre edebilirsiniz.

Geçici oturum başlatma

Geçici özel sekmeler için AndroidX tarayıcı kitaplığı gerekir. AndroidX Tarayıcı Kitaplığı, projenin build.gradle dosyasının bağımlılıklar bölümüne eklenebilir. API'ler alfa sürümünde kullanılabilir. Derleme dosyanıza aşağıdakileri ekleyin:

dependencies {
    implementation 'androidx.browser:browser:1.9.0-alpha01'
}

Geçici bir tarama oturumu oluşturmak için CustomTabsIntent içinde sağlanan özel ayarlayıcıyı kullanın:

// In your activity

String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
    .setEphemeralBrowsingEnabled(true)
    .build();

customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));

Geçici tarama, standart Chrome özel sekmeleri uygulamasında ek bir intent tarafından tetiklendiğinden, özelleştirmeler normal özel sekmelerde olduğu gibi eklenebilir.

// Add customizations

String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
    .setEphemeralBrowsingEnabled(true)
    .setUrlBarHidingEnabled(false)
    .setShareState(CustomTabsIntent.SHARE_STATE_OFF)
    .setCloseButton(BitmapFactory.decodeResource(getResources(), R.drawable.ic_back_arrow))
    .build();

customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));

Auth sekmesini kullanan geliştiriciler, geçici tarama ayarlayıcısını AuthTabIntent öğesine eklemelidir:

// Add ephemeral browsing to Auth Tab

AuthTabIntent authTabIntent = new AuthTabIntent.Builder()
    .setEphemeralBrowsingEnabled(true)
    .build();
authTabIntent.launch(launcher, uri, redirectScheme);

Bazı özelleştirmeler geçici sekmede değiştirilir veya kullanılamaz:

  • Geçici oturumlarda geçmiş günlüğe kaydedilmez.
  • Kullanıcılar mevcut sayfayı indiremez.
  • Bağlantıya uzun basarak yeni bir Chrome sekmesinde açma özelliği devre dışıdır.
  • Taşma menüsünü kullanarak mevcut sayfayı varsayılan tarayıcıda açma seçeneği, gizli modda bir tarayıcı penceresi açar.

Önceki uygulamalara geri dönme

Tüm kullanıcı cihazları Geçici Özel Sekmeler'i başlatamaz. Geliştiriciler bu tür durumları ele almak için geçici göz atmanın desteklenip desteklenmediğini belirlemek üzere temel tarayıcıda sorgu yapmak için CustomTabsClient öğesini kullanabilir. Bunun için CustomTabsClient ile hizmet bağlantısı gerekir. Bunu yapmak için başarılı bir bağlama işleminden sonra sağlanan CustomTabsClient'a erişmek üzere yeni bir CustomTabsServiceConnection başlatın.

// in your activity

CustomTabsServiceConnection connection = new CustomTabsServiceConnection() {
    @Override
    public void onCustomTabsServiceConnected(@NonNull ComponentName name, @NonNull CustomTabsClient client) {

        CustomTabsSession session = client.newSession(null);
        try {
            if (session.isEphemeralBrowsingSupported(Bundle.EMPTY)) {
                // launch ephemeral tab
            } else {
                // fallback
            }
        } catch (RemoteException e) {
            // fallback
        }
    }

    @Override
    public void onServiceDisconnected(ComponentName componentName) { }
};

CustomTabsClient.bindCustomTabsService(this, "com.android.chrome", connection);

Henüz Geçici Özel Sekmelere erişimi olmayan kullanıcılara hizmet veren uygulamalar, önbelleğe alma özelliği devre dışı bırakılmış bir WebView gibi başka yöntemler kullanabilir. Geçici Özel Sekmelerden yararlanan ve WebView'e yedek olarak başvuran bir uygulama örneğini Android Browser Helper kitaplığında bulabilirsiniz.

Ek kaynaklar