ปรับปรุงความเป็นส่วนตัวบนเว็บให้แก่ผู้ใช้ด้วยแท็บที่กำหนดเองชั่วคราว

บางครั้งนักพัฒนาแอป Android ต้องใช้ประสบการณ์การใช้งานเว็บชั่วคราวเพื่อให้เป็นไปตามข้อกำหนดของแอป แท็บที่กำหนดเองชั่วคราวคือแท็บที่กำหนดเองเฉพาะทางซึ่งจะเปิดเว็บเบราว์เซอร์ที่แยกออกจากกันโดยสมบูรณ์จากภายในแอป แท็บนี้สามารถใช้กับกลยุทธ์การตรวจสอบสิทธิ์ที่ไม่ควรซิงค์สถานะการเข้าสู่ระบบกับเบราว์เซอร์หรือเซสชันเว็บที่ไม่ควรเก็บข้อมูลไว้ เช่น โหมดการท่องเว็บส่วนตัว

โดยค่าเริ่มต้น แท็บที่กำหนดเองจะแชร์สถานะและฟีเจอร์จากเบราว์เซอร์ของผู้ใช้ ในแท็บที่กำหนดเองชั่วคราว คุกกี้ ไฟล์ที่แคช ประวัติ ข้อมูลเข้าสู่ระบบ และข้อมูลอื่นๆ จะอยู่ในขอบเขตของอินสแตนซ์เซสชันเท่านั้น เมื่อปิดกิจกรรมในแท็บที่กำหนดเอง ระบบจะลบข้อมูลโดยไม่มีร่องรอย

เช่นเดียวกับแท็บที่กำหนดเอง แท็บที่กำหนดเองชั่วคราวสามารถปรับแต่งได้ด้วยการดำเนินการและธีม UI หากใช้แท็บ Auth สำหรับกลยุทธ์การตรวจสอบสิทธิ์อยู่แล้ว คุณจะเพิ่มการท่องเว็บชั่วคราวลงใน Intent การเริ่มได้ ซึ่งจะเพิ่มความเป็นส่วนตัวอีกชั้นให้กับกระบวนการ

แท็บที่กำหนดเองชั่วคราวพร้อมใช้งานใน Chrome 130 และสามารถสร้างอินสแตนซ์ได้ด้วยโค้ดเพียงบรรทัดเดียว สําหรับผู้ใช้ที่ฟีเจอร์นี้ไม่พร้อมใช้งาน คุณสามารถตรวจสอบว่าเปิดใช้การท่องเว็บชั่วคราวหรือไม่ และผสานรวมทางเลือกสำรองได้อย่างราบรื่น

เปิดเซสชันชั่วคราว

แท็บที่กำหนดเองชั่วคราวต้องใช้ไลบรารีเบราว์เซอร์ AndroidX คุณสามารถเพิ่มไลบรารีเบราว์เซอร์ AndroidX ในส่วน Dependency ของไฟล์ build.gradle ของโปรเจ็กต์ API พร้อมใช้งานในรุ่นอัลฟ่า เพิ่มโค้ดต่อไปนี้ลงในไฟล์บิลด์

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

เนื่องจากการท่องเว็บชั่วคราวจะทริกเกอร์โดย Intent Extra ในการติดตั้งใช้งานแท็บที่กำหนดเองของ 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));

สําหรับนักพัฒนาซอฟต์แวร์ที่ใช้แท็บการตรวจสอบสิทธิ์ ให้เพิ่มตัวตั้งค่าการท่องเว็บชั่วคราวลงใน 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

แหล่งข้อมูลเพิ่มเติม