कुछ समय के लिए खुलने वाले कस्टम टैब की मदद से, उपयोगकर्ताओं के लिए वेब पर निजता को बेहतर बनाना

Android डेवलपर को कभी-कभी अपने ऐप्लिकेशन की ज़रूरी शर्तों को पूरा करने के लिए, कुछ समय के लिए वेब का इस्तेमाल करना पड़ता है. कुछ समय के लिए खुलने वाला कस्टम टैब, एक खास कस्टम टैब होता है. यह ऐप्लिकेशन में, पूरी तरह से अलग वेब ब्राउज़र लॉन्च करता है. इसका इस्तेमाल, पुष्टि करने की उन रणनीतियों के लिए किया जा सकता है जिन्हें ब्राउज़र या वेब सेशन के साथ लॉगिन स्टेटस सिंक नहीं करना चाहिए. जैसे, निजी ब्राउज़िंग मोड.

डिफ़ॉल्ट रूप से, कस्टम टैब, उपयोगकर्ता के ब्राउज़र की स्थिति और सुविधाओं को शेयर करते हैं. कुछ समय के लिए खुलने वाले कस्टम टैब में, कुकी, कैश मेमोरी में सेव की गई फ़ाइलें, इतिहास, क्रेडेंशियल, और अन्य डेटा सिर्फ़ सेशन के इंस्टेंस के दायरे में मौजूद होता है. कस्टम टैब की गतिविधि बंद होने पर, डेटा बिना किसी निशान के मिट जाता है.

कस्टम टैब की तरह, कुछ समय के लिए खुलने वाले कस्टम टैब को भी कार्रवाइयों और यूज़र इंटरफ़ेस (यूआई) थीम के साथ पसंद के मुताबिक बनाया जा सकता है. अगर पुष्टि करने की रणनीतियों के लिए, Auth Tab का इस्तेमाल पहले से किया जा रहा है, तो लॉन्च इंटेंट में कुछ समय के लिए ब्राउज़ करने की सुविधा जोड़ी जा सकती है. इससे, इस प्रोसेस को और भी निजी बनाया जा सकता है.

कुछ समय के लिए खुलने वाले कस्टम टैब, Chrome 130 से उपलब्ध हैं. इन्हें कोड की एक लाइन से इंस्टैंशिएट किया जा सकता है. जिन उपयोगकर्ताओं के लिए यह सुविधा उपलब्ध नहीं है उनके लिए, यह पुष्टि की जा सकती है कि कुछ समय के लिए ब्राउज़िंग की सुविधा चालू है या नहीं. साथ ही, फ़ॉलबैक के विकल्पों को आसानी से इंटिग्रेट किया जा सकता है.

कुछ समय के लिए चलने वाला सेशन लॉन्च करना

कुछ समय के लिए खुलने वाले कस्टम टैब के लिए, AndroidX ब्राउज़र लाइब्रेरी की ज़रूरत होती है. AndroidX ब्राउज़र लाइब्रेरी को किसी प्रोजेक्ट की build.gradle फ़ाइल के डिपेंडेंसी सेक्शन में जोड़ा जा सकता है. ये एपीआई, अल्फा बिल्ड में उपलब्ध हैं. अपनी बिल्ड फ़ाइल में यह कोड जोड़ें:

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

कुछ समय के लिए चलने वाला ब्राउज़िंग सेशन बनाने के लिए, CustomTabsIntent में दिए गए कस्टम सेटर का इस्तेमाल करें:

// In your activity

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

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

Chrome के कस्टम टैब को स्टैंडर्ड तरीके से लागू करने पर, कुछ समय के लिए ब्राउज़ करने की सुविधा, इंटेंट एक्सट्रा से ट्रिगर होती है. इसलिए, इसे सामान्य कस्टम टैब की तरह ही पसंद के मुताबिक बनाया जा सकता है.

// 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 Tab का इस्तेमाल करने वाले डेवलपर के लिए, AuthTabIntent में कुछ समय के लिए ब्राउज़िंग सेटिंग जोड़ें:

// Add ephemeral browsing to Auth Tab

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

कुछ पसंद के मुताबिक बनाए गए बदलावों में बदलाव किया गया है या वे कुछ समय के लिए उपलब्ध टैब में उपलब्ध नहीं हैं:

  • कुछ समय के लिए चलने वाले सेशन में इतिहास को लॉग नहीं किया जाता.
  • उपयोगकर्ता, मौजूदा पेज को डाउनलोड नहीं कर पा रहे हैं.
  • किसी लिंक को दबाकर रखकर, उसे Chrome के नए टैब में खोलने की सुविधा बंद है.
  • ओवरफ़्लो मेन्यू की मदद से, मौजूदा पेज को डिफ़ॉल्ट ब्राउज़र में खोलने का विकल्प, गुप्त मोड में ब्राउज़र विंडो को लॉन्च करता है.

पहले लागू किए गए तरीकों पर फ़ॉलबैक करना

सभी उपयोगकर्ताओं के डिवाइसों पर, कुछ समय के लिए खुलने वाले कस्टम टैब लॉन्च नहीं किए जा सकते. इन मामलों को हैंडल करने के लिए, डेवलपर CustomTabsClient का इस्तेमाल करके ब्राउज़र से क्वेरी कर सकते हैं. इससे यह पता चलता है कि कुछ समय के लिए ब्राउज़िंग की सुविधा काम करती है या नहीं. इसके लिए, CustomTabsClient से सेवा कनेक्शन होना ज़रूरी है. इसके लिए, CustomTabsClient को ऐक्सेस करने के लिए एक नया CustomTabsServiceConnection लॉन्च करें. यह CustomTabsClient, बाइंडिंग की प्रोसेस पूरी होने के बाद उपलब्ध होता है.

// 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);

जिन उपयोगकर्ताओं के पास अब तक कुछ समय के लिए खुले रहने वाले कस्टम टैब का ऐक्सेस नहीं है उनके लिए, ऐप्लिकेशन अन्य तरीकों का इस्तेमाल कर सकते हैं. जैसे, कैश मेमोरी का इस्तेमाल बंद करके वेबव्यू. Android Browser Helper लाइब्रेरी में, वेबव्यू पर फ़ॉलबैक के साथ, कुछ समय के लिए खुलने वाले कस्टम टैब का इस्तेमाल करने के तरीके का उदाहरण मिलता है.

अन्य संसाधन