توسعه دهندگان اندروید گاهی برای برآوردن نیازهای برنامه خود به یک تجربه وب زودگذر نیاز دارند. تب سفارشی زودگذر یک تب سفارشی تخصصی است که یک مرورگر وب کاملا ایزوله را از داخل یک برنامه راه اندازی می کند. این میتواند برای استراتژیهای احراز هویت که نباید حالت ورود به سیستم را با مرورگر یا جلسات وب که در آن دادهها نباید حفظ شود، همگامسازی کند، مانند حالت مرور خصوصی، استفاده شود.
به طور پیش فرض، تب های سفارشی وضعیت و ویژگی های مرورگر کاربر را به اشتراک می گذارند. در یک برگه سفارشی زودگذر، کوکیها، فایلهای حافظه پنهان، تاریخچه، اعتبارنامهها و سایر دادهها فقط در محدوده نمونه جلسه وجود دارند. هنگامی که «فعالیت برگه سفارشی» بسته میشود، دادهها بدون ردیابی حذف میشوند.
مانند تب های سفارشی، یک تب سفارشی زودگذر را می توان با اکشن ها و قالب های رابط کاربری سفارشی کرد. اگر قبلاً از Auth Tab برای استراتژیهای احراز هویت استفاده میکنید، مرور زودگذر را میتوان به هدف راهاندازی اضافه کرد و لایه دیگری از حریم خصوصی را به فرآیند اضافه کرد.
برگههای سفارشی زودگذر از Chrome 130 در دسترس هستند و میتوانند با یک خط کد نمونهسازی شوند. برای کاربرانی که این ویژگی در دسترس نیست، میتوانید تأیید کنید که آیا مرور زودگذر فعال است یا خیر و بهطور یکپارچه گزینههای جایگزین را ادغام کنید.
یک جلسه زودگذر راه اندازی کنید
برگههای سفارشی زودگذر به کتابخانه مرورگر AndroidX نیاز دارند. کتابخانه مرورگر AndroidX را می توان در بخش وابستگی ها در فایل 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));
از آنجایی که مرور زودگذر توسط یک هدف اضافی در پیادهسازی استاندارد Tabs سفارشی 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
نیاز دارد. برای انجام این کار، یک 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 یافت میشود.