يتم إطلاق علامات التبويب المخصّصة تلقائيًا كنشاط في نافذة ملء الشاشة. بدءًا من الإصدار 107 من Chrome، يمكنك استخدام علامات تبويب مخصَّصة جزئية لتحديد ارتفاع تشغيل مختلف في الوضع العمودي كي يتمكّن المستخدمون من تنفيذ مهام متعددة من خلال التفاعل مع تطبيقك أثناء عرض محتوى الويب. يمكن للمستخدمين توسيع "علامة التبويب المخصّصة" إلى ملء الشاشة من خلال سحب مقبض شريط الأدوات للأعلى واستعادة ارتفاع الإطلاق الأولي من خلال سحب المقبض للأسفل.
بالنسبة إلى الشاشات الكبيرة أو الأجهزة في الوضع الأفقي، بدءًا من Chrome 120، يمكنك تحديد الحد الأقصى لعرض التشغيل لإظهار جزء علامة تبويب مخصَّصة في ورقة جانبية. من خلال ضبط نقطة فاصل، يمكنك تحديد وقت عرض علامة تبويب مخصّصة جزئية في جدول سفلي أو جانبي.
المتطلبات الأساسية
لاستخدام علامات التبويب المخصّصة الجزئية، عليك إجراء ما يلي:
بدء جلسة متصفّح جديدة باستخدام
CustomTabsServiceConnection
وإرسالها إلى نية علامات التبويب المخصّصةابدأ "نشاط علامة التبويب المخصَّصة" باستخدام
startActivityForResult()
.
يمكنك الجمع بين الخيارين إذا كنت تريد بدء تشغيل سريع في حال عدم اكتمال اتصال الخدمة بعد.
ضبط البطاقة السفلية
لتحويل علامة تبويب مخصّصة إلى علامة تبويب مخصّصة جزئية، حدِّد ارتفاع الإطلاق الأولي
بالبكسل من خلال استدعاء CustomTabBuilder
setInitialActivityHeightPx()
طريقة فئة. يمكن تغيير حجم جزء علامة التبويب المخصّصة تلقائيًا، ولكن يمكنك ضبط
ACTIVITY\_HEIGHT\_FIXED
لإيقاف هذا السلوك:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
ضبط الورقة الجانبية
لضبط سلوك البطاقة الجانبية، حدِّد عرض الإطلاق الأولي بالبكسل من خلال استدعاء طريقة
setInitialActivityWidthPx()
الخاصة بفئة CustomTabBuilder
.
يمكن تغيير حجم جزء علامة التبويب المخصّصة تلقائيًا، ولكن يمكنك ضبط
ACTIVITY\_HEIGHT\_FIXED
لإيقاف هذا السلوك:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
سيتم استخدام علامة التبويب Custom Tab كورقة جانبية إذا كان عرض الشاشة أكبر من قيمة نقطة الإيقاف التي تم تحديدها من خلال setActivitySideSheetBreakpointDp(). وإذا كان عرض الشاشة أعلى من x
، ستعمل علامة التبويب Custom Tab كورقة جانبية، وإلا ستعمل كورقة سفلية. إذا لم يتم تحديد أي نقطة توقف،
يجب ضبط عملية تنفيذ المتصفِّح كقيمة تلقائية 840dp
.
إذا تم ضبط x
على <600dp
، من المفترض أن يضبط تنفيذ المتصفّح القيمة التلقائية على
600dp
.
بدء علامة تبويب مخصّصة جزئية باستخدام جلسة حالية
CustomTabsSession customTabsSession;
// ...
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
.setInitialActivityHeightPx(500)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
.setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
// ...
.build();
customTabsIntent.launchUrl(context, Uri.parse(url))
بدء علامة تبويب مخصّصة جزئية من خلال startActivityForResult
private ActivityResultLauncher<String> mCustomTabLauncher = registerForActivityResult(new ActivityResultContract<String, Integer>() {
@Override
public Integer parseResult(int statusCode, @Nullable Intent intent) {
return statusCode;
}
@NonNull
@Override
public Intent createIntent(@NonNull Context context, String url) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(customTabsSession)
.setInitialActivityHeightPx(500)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
.setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
.setToolbarCornerRadiusDp(10);
Intent customTabsIntent = builder.build().intent;
customTabsIntent.setData(Uri.parse(url));
return customTabsIntent;
}
}, new ActivityResultCallback<Integer>() {
@Override
public void onActivityResult(Integer statusCode) {
// ...
}
});
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Button selectButton = findViewById(R.id.select_button);
selectButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mCustomTabLauncher.launch(customTabsIntent.intent);
}
});
}
الخطوة التالية: تعرَّف على كيفية قياس تفاعل المستخدمين في علامات التبويب المخصّصة.