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

PWA ها می توانند از ویژگی "display_override" برای مقابله با حالت های نمایش خاص استفاده کنند.

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

ویژگی استفاده کنید
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 توسط دانیل مورفی رسمیت یافت.