مرحلة التجربة والتقييم لواجهات برمجة التطبيقات القابلة للطي

يجرِّب Chrome واجهتَي برمجة تطبيقات، وهما Device Posture API وViewport Reporting API. واجهة Enumeration API المتوفّرة في مرحلة التجربة والتقييم في Chrome 125. وتُعرف هذه الواجهات باسم واجهات برمجة التطبيقات القابلة للطي، وهي مصمّمة لمساعدة المستخدمين في يستهدف المطورون الأجهزة القابلة للطي. تقدم هذه المقالة واجهات برمجة التطبيقات هذه، وتوفر معلومات حول كيفية البدء في اختبارها.

هناك نوعان مختلفان من أشكال الأجهزة: الأجهزة التي تحتوي على وشاشة مرنة (سلسة)، والأجهزة ذات شاشتين (مع درزات، والمعروفة أيضًا باسم كأجهزة ثنائية الشاشة).

رسم تخطيطي لجهاز تظهر فيه شاشة واحدة مرنة (سلسة) على اليسار، وجهاز على شاشتَين (مع شريط يد متنقّل) على اليمين

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

توفّر واجهات برمجة التطبيقات الجديدة هذه طرقًا تتيح للمطوّرين توفير تجارب استخدام أفضل للمستخدمين. لهذه الأجهزة. تعرض كل واجهة برمجة تطبيقات الأساسيات المطلوبة للنظام الأساسي للويب في قسمين من خلال CSS وJavaScript.

واجهة برمجة تطبيقات وضع الجهاز

تتضمّن الأجهزة القابلة للطيّ إمكانيات تتيح لها تغيير وضعها. الحالة المادية للجهاز. ويمكنهم تغيير شكل الجهاز للسماح لمؤلفي المحتوى تقديم تجربة مستخدم مختلفة، وواجهات برمجة التطبيقات الجديدة هذه تجعل التأكد من قدرة محتوى الويب على التفاعل مع حالات الطي المختلفة.

هناك وضعان للجهاز الذي يمكن أن يكون عليه الجهاز:

  • folded: أوضاع الكمبيوتر المحمول أو الكتاب

رسم تخطيطي للأجهزة في وضعيات مسطّحة أو لوحية، وشاشة منحنية سلِسة

  • continuous: شاشات مسطحة أو أجهزة لوحية أو حتى شاشات منحنية سلسة

رسم تخطيطي للأجهزة في الكمبيوتر المحمول أو وضعيات الكتاب

CSS

يتم تحديد خدمة CSS جديدة من خلال مواصفات Device Posture API Media-feature — device-posture. تنتقل ميزة الوسائط هذه إلى مجموعة من الوضعيات الثابتة. تتكون هذه الوضعيات لعدد من القيم المحددة مسبقًا التي يشمل كل منها حالة مادية الخاص بك.

تتطابق قيم ميزة device-posture مع الوصف السابق الأوضاع المحتملة:

  • folded
  • continuous

ويمكن إضافة مواقف جديدة في المستقبل في حال طرح أجهزة جديدة في السوق.

أمثلة:

/* Using the device in a 'book' posture. */
@media (device-posture: folded) { ... }

/* Using the device in a 'flat' posture, or any typical device like a laptop or
desktop device. */
@media (device-posture: continuous) { ... }

JavaScript

لطلب بحث عن وضع جهاز، يتوفّر عنصر DevicePosture جديد.

const { type } = navigator.devicePosture;
console.log(`The current device is of type ${type}.`);

التفاعل مع تغييرات وضع الجهاز، مثل فتح المستخدم للجهاز بالكامل وبالتالي تنتقل من folded إلى continuous، يمكنك الاشتراك في change حدث.

navigator.devicePosture.addEventListener('change', (e) => {
  console.log(`The device posture changed to type ${e.type}`);
});

واجهة برمجة تطبيقات شرائح إطار العرض

شرائح إطار العرض هي متغيرات بيئة CSS تحدد الموضع أبعاد منطقة منفصلة منطقيًا من إطار العرض. تعد شرائح إطار العرض يتم إنشاؤه عند تقسيم إطار العرض بواسطة ميزة واحدة أو أكثر من ميزات الأجهزة (مثل الطي أو مفصلة بين الشاشات المنفصلة) تعمل كفاصل. الشرائح هي مناطق إطار العرض التي يمكن التعامل معها باعتبارها مميزة منطقيًا من خلال المؤلف.

CSS

يتم الكشف عن عدد التقسيمات المنطقية من خلال ميزتين إعلاميتين جديدتين، محدد في مواصفات المستوى 5 من استعلامات وسائط CSS: "vertical-viewport-segments" وhorizontal-viewport-segments" يقرران إلى عدد الأجزاء التي تم تقسيم إطار العرض إليها.

كما تمت إضافة متغيرات بيئة جديدة للاستعلام عن أبعاد كل قسم منطقي. هذه المتغيرات هي:

  • env(viewport-segment-width x y)
  • env(viewport-segment-height x y)
  • env(viewport-segment-top x y)
  • env(viewport-segment-left x y)
  • env(viewport-segment-bottom x y)
  • env(viewport-segment-right x y)

لكل متغير بعدين يمثلان الموضعين "س" و"ص"، على التوالي، في الشبكة الثنائية الأبعاد التي أنشأتها ميزات الأجهزة وتفصل المقاطع.

رسم بياني يعرض المقاطع الأفقية والعمودية الجزء الأفقي الأول هو x 0 وy 0، والثاني × 1 وy 0. الجزء الرأسي الأول هو س 0 و ص 0، والثاني × 0 و ص 1.
الجزء الأفقي الأول x 0 وy 0، والثاني × 1 وy 0. الجزء الرأسي الأول هو س 0 و ص 0، والثاني × 0 و ص 1.

مقتطف الرمز التالي هو مثال مُبسط لإنشاء تجربة مستخدم مجزّأة حيث لدينا قسمان للمحتوى (العمود 1 والعمود 2) على كل جانب من الجزء المرئي من الصفحة.

<style>
  /* Segments are laid out horizontally. */
  @media (horizontal-viewport-segments: 2) {
    #segment-css-container {
      flex-direction: row;
    }

    #col1 {
      display: flex;
      flex: 0 0 env(viewport-segment-right 0 0);
      background-color: steelblue;
    }

    #fold {
      width: calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0));
      background-color: black;
      height: 100%;
    }

    #col2 {
      display: flex;
      background-color: green;
    }
  }

  /* Segments are laid out vertically. */
  @media (vertical-viewport-segments: 2) {
    #segment-css-container {
      flex-direction: column;
    }

    #col1 {
      display: flex;
      flex: 0 0 env(viewport-segment-bottom 0 0);
      background-color: pink;
    }

    #fold {
      width: 100%;
      height: calc(env(viewport-segment-top 0 1) - env(viewport-segment-bottom 0 0));
      background-color: black;
    }

    #col2 {
      display: flex;
     background-color: seagreen;
    }
  }
</style>

<div id="segment-css-container">
   <div id="col1"></div>
   <div id="fold"></div>
   <div id="col2"></div>
 </div>

توضّح الصور التالية التجربة على جهاز فعلي.

هاتف قابل للطي في وضع الكتاب العمودي

هاتف قابل للطي في وضع أفقي للكتاب

جهاز لوحي قابل للطي في وضع أفقي للكتاب

JavaScript

للحصول على عدد شرائح إطار العرض، تحقّق من الإدخال segments في visualViewport

const segments = window.visualViewport.segments;
console.log('The viewport has the following segments:', segments);

يمثل كل إدخال في المصفوفة segments كل قطاع منطقي من إطار عرض مع DOMArray يصف الإحداثيات والحجم. segments هو لقطة شاشة للحالة المعينة عند الاستعلام عنها، من أجل الحصول على تحديثات التي تحتاجها للاستماع إلى تغييرات الوضعية أو تغيير حجم الأحداث وإعادة الاستعلام عن الموقع: segments.

تجربة واجهات برمجة التطبيقات القابلة للطي

تتوفّر واجهات برمجة التطبيقات القابلة للطيّ في مرحلة التجربة والتقييم من Chrome 125 إلى Chrome 128. عرض بدء استخدام مراحل التجربة والتقييم للحصول على معلومات أساسية حول مراحل التجربة والتقييم.

لإجراء اختبارات محلية، يمكن تفعيل واجهات برمجة التطبيقات القابلة للطي من خلال إصدار الويب التجريبي. ميزات النظام الأساسي التي يتم وضع علامة عليها chrome://flags/#enable-experimental-web-platform-features يمكن أيضًا أن يكون عن طريق تشغيل Chrome من سطر الأوامر مع --enable-experimental-web-platform-features

إصدارات تجريبية

بالنسبة إلى الإصدارات التجريبية، يُرجى الاطّلاع على العروض التوضيحية المستودع. إذا لم يكن لديك الجهاز الفعلي الذي تريد الاختبار معه، يمكنك اختيار Galaxy Z Fold 5 أو Asus محاكاة جهاز Zenbook Fold في "أدوات مطوري البرامج في Chrome" والتبديل بين مستمرة ومطوية: يمكنك أيضًا عرض المفصّلة عند السارية.

&quot;أدوات مطوري البرامج في Chrome&quot; تحاكي جهازًا قابلاً للطي