التحضير لأوضاع عرض الغد

يمكن أن تستخدم التطبيقات المتوافقة مع الأجهزة الجوّالة (PWAs) السمة display_override للتعامل مع أوضاع العرض الخاصة.

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

الموقع الاستخدام
fullscreen يفتح تطبيق الويب بدون أي واجهة مستخدم للمتصفّح ويشغّل الشاشة بالكامل.
standalone يفتح تطبيق الويب ليبدو ويتصرف مثل تطبيق مستقل. ويتم تشغيل التطبيق في نافذته الخاصة، منفصلة عن المتصفّح، ويخمِل عناصر واجهة مستخدِم المتصفّح العادية، مثل شريط عنوان URL.
minimal-ui يشبه هذا الوضع standalone، ولكنه يقدّم للمستخدم مجموعة دنيا من عناصر واجهة المستخدم للتحكّم في التنقّل (مثل الرجوع وإعادة التحميل).
browser تجربة متصفح عادية

تتّبع أوضاع العرض هذه سلسلة احتياطية محدّدة جيدًا ("fullscreen""standalone""minimal-ui""browser"). إذا لم يكن المتصفّح متوافقًا مع أحد أوضاع العرض، يتم الرجوع إلى وضع العرض التالي في السلسلة.

أوجه القصور في سمة display

تتجلّى المشكلة في نهج سلسلة الاحتياطية المبرمَجة في ثلاثة جوانب:

  • لا يمكن للمطوّر طلب "minimal-ui" بدون إعادة فرض وضع العرض "browser" في حال عدم توافق "minimal-ui" مع متصفّح معيّن.
  • لا تتوفّر للمطوّرين طريقة للتعامل مع الاختلافات بين المتصفّحات المختلفة، مثل ما إذا كان المتصفّح يتضمّن زر الرجوع في نافذة وضع "standalone" أو يستبعده.
  • يصعّب السلوك الحالي تقديم انماط عرض جديدة بطريقة متوافقة مع الإصدارات القديمة، لأنّ الاستكشافات، مثل وضع التطبيقات المُقسّمة إلى علامات تبويب، لا تملك مكانًا انماط عرض طبيعية في سلسلة الحلول الاحتياطية.

سمة display_override

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

في المثال أدناه، ستكون سلسلة العناصر الاحتياطية لعرض المحتوى على النحو التالي. (لا تتناول هذه المقالة تفاصيل "window-controls-overlay").

  1. "window-controls-overlay" (يُرجى الاطّلاع أولاً على display_override).
  2. "minimal-ui"
  3. "standalone" (عند استنفاد display_override، قيِّم display).
  4. "minimal-ui" (أخيرًا، استخدِم سلسلة display الاحتياطية).
  5. "browser"
{
  "display_override": ["window-controls-overlay", "minimal-ui"],
  "display": "standalone",
}

للحفاظ على التوافق مع الإصدارات السابقة، لن يتم قبول أيّ وضع عرض مستقبلي إلّا كقيمة display_override، وليس display. تتوقّف المتصفّحات التي لا تتيح استخدام display_override عن استخدام display وتتجاهل display_override باعتبارها سمة بيان تطبيق ويب غير معروف.

خدمات الإقرار

تمّ وضع السمة display_override رسميًا من قِبل دانيال ميرفي.