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

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

لقطة شاشة لبطاقة سفلية "علامة تبويب جزئية"
علامة تبويب مخصصة جزئية في بطاقة سفلية.

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

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

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

لتتمكّن من استخدام "علامات التبويب المخصَّصة" الجزئية، عليك:

استخدام الأسلوبَين معًا إذا أردت بدء تشغيل سريع في حال وفّرت الخدمة لم يتم إنشاء اتصال بعد.

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

لتحويل علامة تبويب مخصَّصة إلى علامة تبويب مخصَّصة جزئية، حدِّد ارتفاع التشغيل المبدئي. بالبكسل من خلال استدعاء فئة 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);
        }
    });
}

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