آماده شدن برای حالت‌های نمایش فردا

برنامه‌های وب پیش‌رونده می‌توانند از ویژگی «display_override» برای مدیریت حالت‌های نمایش ویژه استفاده کنند.

مانیفست برنامه وب یک فایل JSON است که به مرورگر درباره «برنامه وب پیشرفته» شما و نحوه عملکرد آن هنگام نصب در رایانه یا دستگاه همراه کاربر اطلاع می‌دهد. ازطریق ویژگی display، می‌توانید سفارشی‌سازی کنید که هنگام راه‌اندازی برنامه‌تان کدام واسط کاربر مرورگر نشان داده شود. برای مثال، می‌توانید نوار نشانی و مرورگر Chrome را پنهان کنید. حتی می‌توان بازی‌ها را به‌صورت تمام‌صفحه راه‌اندازی کرد. به‌عنوان یک خلاصه سریع، در زیر حالت‌های نمایشی که در زمان نوشتن این مقاله مشخص شده‌اند، آورده شده است.

دارایی استفاده
fullscreen برنامه وب را بدون واسط کاربر مرورگر باز می‌کند و کل فضای نمایشگر دردسترس را اشغال می‌کند.
standalone برنامه وب را باز می‌کند تا ظاهر و حسی شبیه به برنامه مستقل داشته باشد. برنامه در پنجره خودش، جدا از مرورگر، اجرا می‌شود و عناصر میانای کاربر استاندارد مرورگر مانند نوار نشانی وب را پنهان می‌کند.
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 توسط دنیل مورفی رسمی شد.