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"
خارج از محدوده این مقاله است.)
-
"window-controls-overlay"
(ابتدا بهdisplay_override
نگاه کنید.) -
"minimal-ui"
-
"standalone"
(وقتیdisplay_override
تمام شد،display
ارزیابی کنید.) -
"minimal-ui"
(در نهایت، از زنجیره بازگشتیdisplay
استفاده کنید.) -
"browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
برای سازگاری با عقب، هر حالت نمایشی در آینده فقط به عنوان مقدار display_override
قابل قبول است، اما display
نمی شود. مرورگرهایی که display_override
پشتیبانی نمیکنند به ویژگی display
برمیگردند و display_override
بهعنوان ویژگی مانیفست برنامه وب ناشناخته نادیده میگیرند.
لینک های مفید
قدردانی
ویژگی display_override
توسط دانیل مورفی رسمیت یافت.