บางครั้งนักพัฒนาแอป 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