שיפור הפרטיות באינטרנט למשתמשים באמצעות כרטיסיות זמניות בהתאמה אישית

לפעמים מפתחי Android צריכים חוויית שימוש זמנית באינטרנט כדי לעמוד בדרישות של האפליקציה שלהם. כרטיסייה זמנית בהתאמה אישית היא כרטיסייה בהתאמה אישית ייעודית שמפעילה דפדפן אינטרנט מבודד לחלוטין מתוך אפליקציה. אפשר להשתמש בה באסטרטגיות אימות שלא צריכות לסנכרן את מצב ההתחברות עם הדפדפן או עם סשנים באינטרנט שבהם לא צריך לשמור נתונים, כמו מצב גלישה פרטית.

כברירת מחדל, כרטיסיות בהתאמה אישית משתפות את המצב והתכונות מהדפדפן של המשתמש. בכרטיסייה מותאמת אישית זמנית, קובצי cookie, קבצים שנשמרו במטמון, היסטוריה, פרטי כניסה ונתונים אחרים קיימים רק בהיקף של המכונה של הסשן. כשסוגרים את הפעילות בכרטיסייה בהתאמה אישית, הנתונים נמחקים ללא עקבות.

בדומה לכרטיסיות בהתאמה אישית, אפשר להתאים אישית כרטיסייה זמנית בהתאמה אישית באמצעות פעולות ועיצוב של ממשק המשתמש. אם אתם כבר משתמשים בכרטיסיית Auth לצורך אסטרטגיות אימות, תוכלו להוסיף גלישה זמנית לכוונה להפעלה, וכך להוסיף שכבת פרטיות נוספת לתהליך.

כרטיסיות זמניות בהתאמה אישית זמינות מגרסת Chrome 130, וניתן ליצור אותן באמצעות שורת קוד אחת. למשתמשים שבהם התכונה לא זמינה, תוכלו לאמת אם הגלישה הזמנית מופעלת ולשלב בצורה חלקה חלופות חלופיות.

הפעלת סשן זמני

כדי להשתמש בכרטיסיות זמניות בהתאמה אישית, צריך את ספריית הדפדפן AndroidX. אפשר להוסיף את AndroidX Browser Library בקטע יחסי התלות בקובץ build.gradle של הפרויקט. ממשקי ה-API זמינים בגרסה אלפא. מוסיפים את הטקסט הבא לקובץ ה-build:

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, מוסיפים את ה-setter של הגלישה הזמנית ל-AuthTabIntent:

// Add ephemeral browsing to Auth Tab

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

חלק מההתאמות אישיות משתנות או לא זמינות בכרטיסייה זמנית:

  • ההיסטוריה לא מתועדת בסשן זמני.
  • המשתמשים לא יכולים להוריד את הדף הנוכחי.
  • אי אפשר ללחוץ לחיצה ארוכה על קישור כדי לפתוח אותו בכרטיסייה חדשה ב-Chrome.
  • האפשרות לפתוח את הדף הנוכחי בדפדפן ברירת המחדל באמצעות תפריט האפשרויות הנוספות פותחת חלון דפדפן במצב פרטי.

חזרה להטמעות קודמות

לא כל מכשירי המשתמשים יכולים להפעיל כרטיסיות זמניות בהתאמה אישית. כדי לטפל במקרים האלה, מפתחים יכולים להשתמש ב-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);

אפליקציות שמגישות למשתמשים שעדיין אין להם גישה לכרטיסיות מותאמות אישית זמניות יכולות להשתמש בשיטות אחרות, כמו WebView עם ביטול האחסון במטמון. דוגמה להטמעה שמשתמשת בכרטיסיות מותאמות אישיות זמניות עם חזרה ל-WebView מופיעה בספרייה Android Browser Helper.

מקורות מידע נוספים