Für PWAs kann die Eigenschaft „display_override“ verwendet werden, um spezielle Anzeigemodi zu berücksichtigen.
Ein Web-App-Manifest ist eine JSON-Datei, die dem Browser Informationen zu Ihrer Progressiven Web-App und dazu liefert, wie sie sich verhalten soll, wenn sie auf dem Computer oder Mobilgerät des Nutzers installiert wird.
Über die Property display
können Sie anpassen, welche Browser-Benutzeroberfläche beim Starten Ihrer App angezeigt wird. So können Sie beispielsweise die Adressleiste und den Browser-Chrome ausblenden. Spiele können sogar im Vollbildmodus gestartet werden.
Zur Wiederholung: Im Folgenden sind die Anzeigemodi aufgeführt, die zum Zeitpunkt der Erstellung dieses Artikels verfügbar waren.
Attribut | Verwendung |
---|---|
fullscreen |
Die Webanwendung wird ohne Browser-Benutzeroberfläche geöffnet und nimmt den gesamten verfügbaren Displaybereich ein. |
standalone |
Die Webanwendung wird so geöffnet, dass sie wie eine eigenständige App aussieht. Die App wird in einem eigenen Fenster ausgeführt, getrennt vom Browser, und standardmäßige Browser-UI-Elemente wie die URL-Leiste werden ausgeblendet. |
minimal-ui |
Dieser Modus ähnelt standalone , bietet Nutzern aber eine minimale Anzahl von UI-Elementen zur Navigationssteuerung (z. B. Zurück und Aktualisieren).
|
browser |
Standardbrowser |
Diese Darstellungsmodi folgen einer genau definierten Fallback-Kette ("fullscreen"
→ "standalone"
→ "minimal-ui"
→ "browser"
). Wenn ein Browser einen bestimmten Modus nicht unterstützt, wird der nächste Darstellungsmodus in der Kette verwendet.
Nachteile des display
-Attributs
Das Problem mit dieser starren Abfolge von Fallbacks besteht aus drei Teilen:
- Ein Entwickler kann
"minimal-ui"
nicht anfordern, ohne dass er in den Anzeigemodus"browser"
zurückgezwungen wird, falls"minimal-ui"
von einem bestimmten Browser nicht unterstützt wird. - Entwickler haben keine Möglichkeit, browserübergreifende Unterschiede zu berücksichtigen, z. B. ob der Browser im Fenster für den
"standalone"
-Modus eine Zurück-Schaltfläche enthält oder nicht. - Aufgrund des aktuellen Verhaltens ist es nicht möglich, neue Darstellungsmodi auf abwärtskompatible Weise einzuführen, da explorative Datenanalysen wie der Tab-Anwendungsmodus keinen natürlichen Platz in der Fallback-Kette haben.
Das display_override
-Attribut
Diese Probleme werden durch die Property display_override
gelöst, die vom Browser vor der Property display
berücksichtigt wird. Der Wert ist eine Sequenz von Strings, die in der Reihenfolge betrachtet werden, und der erste unterstützte Anzeigemodus wird angewendet. Wenn keine unterstützt werden, greift der Browser auf die Auswertung des Felds display
zurück.
Im folgenden Beispiel würde die Fallback-Kette für den Anzeigemodus so aussehen:
Die Details zu "window-controls-overlay"
fallen nicht in den Geltungsbereich dieses Artikels.
"window-controls-overlay"
(Sehen Sie sich zuerstdisplay_override
an.)"minimal-ui"
"standalone"
(Wenndisplay_override
aufgebraucht ist, wirddisplay
ausgewertet.)"minimal-ui"
(Verwenden Sie abschließend diedisplay
-Fallback-Kette.)"browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
Um für Abwärtskompatibilität zu sorgen, ist jeder zukünftige Anzeigemodus nur als Wert von display_override
zulässig, nicht als Wert von display
.
In Browsern, die display_override
nicht unterstützen, wird auf die Property display
zurückgegriffen und display_override
als unbekannte Manifest-Property der Webanwendung ignoriert.
Nützliche Links
- Erläuterung
- Thread „Intent to Ship“
- Chromium-Fehler
- Chrome-Statuseintrag
- Manifest Incubations-Repository
Danksagung
Das Attribut display_override
wurde von Daniel Murphy formalisiert.