إنجاز مهام متعددة من خلال علامات تبويب مخصصة جزئية

يتم إطلاق علامات التبويب المخصّصة تلقائيًا كنشاط في نافذة ملء الشاشة. اعتبارًا من الإصدار 107 من Chrome، يمكنك استخدام علامات التبويب المخصّصة الجزئية لتحديد ارتفاع مختلف عند الإطلاق في الوضع عموديًا حتى يتمكّن المستخدمون من إنجاز مهام متعدّدة من خلال التفاعل مع تطبيقك أثناء عرض محتوى الويب. يمكن للمستخدمين توسيع "علامة التبويب المخصّصة" إلى ملء الشاشة من خلال سحب مقبض شريط الأدوات للأعلى واستعادة ارتفاع الإطلاق الأولي من خلال سحب المقبض للأسفل.

لقطة شاشة لعلامة تبويب جزئية في البطاقة السفلية
علامة تبويب مخصّصة جزئية في ورقة بيانات أسفل الصفحة

بالنسبة إلى الشاشات الكبيرة أو الأجهزة في الوضع الأفقي، بدءًا من الإصدار 120 من Chrome، يمكنك تحديد الحد الأقصى لعرض الإطلاق لعرض جزء من علامة التبويب المخصّصة في جدول جانبي. من خلال ضبط نقطة فاصل، يمكنك تحديد وقت عرض علامة تبويب مخصّصة جزئية في جدول سفلي أو جانبي.

لقطة شاشة لعلامة تبويب جزئية في لوحة جانبية
علامة تبويب مخصّصة جزئية في ورقة جانبية

المتطلبات الأساسية

لاستخدام علامات التبويب المخصّصة الجزئية، عليك إجراء ما يلي:

يمكنك الجمع بين الطريقتَين إذا كنت تريد بدء تشغيل سريع في حال لم يتم ربط الخدمة بالحساب بعد.

ضبط البطاقة السفلية

لتحويل علامة تبويب مخصّصة إلى علامة تبويب مخصّصة جزئية، حدِّد ارتفاع الإطلاق الأولي بالبكسل من خلال استدعاء CustomTabBuilder setInitialActivityHeightPx() طريقة فئة. يمكن تغيير حجم علامة التبويب المخصّصة الجزئية تلقائيًا، ولكن يمكنك تمرير ACTIVITY\_HEIGHT\_FIXED لإيقاف هذا السلوك:

new CustomTabsBuilder().setInitialActivityHeightPx(
    400,
    ACTIVITY_HEIGHT_FIXED
);

ضبط الورقة الجانبية

لضبط سلوك اللوحة الجانبية، حدِّد عرض الإطلاق الأولي بالبكسل من خلال استدعاء CustomTabBuilder setInitialActivityWidthPx() طريقة الصف.

يمكن تغيير حجم علامة التبويب المخصّصة الجزئية تلقائيًا، ولكن يمكنك تمرير ACTIVITY\_HEIGHT\_FIXED لإيقاف هذا السلوك:

  CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
        .setInitialActivityHeightPx(400)
        .setInitialActivityWidthPx(400);
        .setActivitySideSheetBreakpointDp(800);

ستتصرف علامة التبويب المخصّصة كجدول جانبي إذا كان عرض الشاشة أكبر من قيمة نقطة التوقف التي تم ضبطها باستخدام setActivitySideSheetBreakpointDp(). إذا كان عرض الشاشة أعلى من x، ستتصرف علامة التبويب المخصّصة كجدول جانبي، وإلا ستتصرف كجدول سفلي. إذا لم يتم تحديد نقطة تفتيش، يجب ضبط تنفيذ المتصفّح على القيمة التلقائية 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);
        }
    });
}

الخطوة التالية: تعرَّف على كيفية قياس تفاعل المستخدمين في علامات التبويب المخصّصة.