אפליקציות PWA יכולות להשתמש במאפיין display_override כדי להתמודד עם מצבי תצוגה מיוחדים.
קובץ מניפסט של אפליקציית אינטרנט הוא קובץ JSON שמספק לדפדפן מידע על אפליקציית האינטרנט המתקדמת (PWA) ועל האופן שבו היא אמורה לפעול כשהיא מותקנת במחשב או במכשיר הנייד של המשתמש.
באמצעות המאפיין display, אתם יכולים להתאים אישית את ממשק המשתמש של הדפדפן שמוצג כשהאפליקציה מופעלת. לדוגמה, אפשר להסתיר את סרגל הכתובות ואת ממשק המשתמש של הדפדפן. אפשר אפילו להגדיר שהמשחקים יופעלו במסך מלא.
לסיכום, בהמשך מפורטים מצבי התצוגה שצוינו בזמן כתיבת המאמר הזה.
| נכס | שימוש |
|---|---|
fullscreen |
אפליקציית האינטרנט נפתחת בלי ממשק משתמש של הדפדפן, ותופסת את כל שטח התצוגה הזמין. |
standalone |
אפליקציית האינטרנט נפתחת ונראית כמו אפליקציה עצמאית. היא פועלת בחלון משלה, בנפרד מהדפדפן, ורכיבי ממשק המשתמש הרגילים של הדפדפן, כמו סרגל כתובות ה-URL, מוסתרים. |
minimal-ui |
המצב הזה דומה ל-standalone, אבל הוא מספק למשתמשים קבוצה מינימלית של רכיבי ממשק משתמש לשליטה בניווט (כמו 'הקודם' ו'טעינה מחדש').
|
browser |
חוויית גלישה רגילה. |
מצבי התצוגה האלה פועלים לפי שרשרת גיבוי (fallback chain) מוגדרת היטב ("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"(Finally, use thedisplayfallback chain.) "browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
כדי לשמור על תאימות לדורות קודמים, כל מצב תצוגה עתידי יתקבל רק כערך של display_override, אבל לא של display.
דפדפנים שלא תומכים ב-display_override עוברים לנכס display ומתעלמים מ-display_override כנכס לא ידוע של קובץ מניפסט של אפליקציה.
קישורים שימושיים
תודות
המאפיין display_override הוגדר באופן רשמי על ידי דניאל מרפי.