PWAs können die Property „display_override“ verwenden, um spezielle Anzeigemodi zu handhaben.
Ein Web-App-Manifest ist eine JSON-Datei, die den Browser über deine progressive Web-App informiert und darüber informiert, wie sie sich verhalten soll, wenn sie auf dem Desktop oder Mobilgerät des Nutzers installiert ist.
Über die Property display
können Sie festlegen, welche Browser-Benutzeroberfläche beim Start Ihrer App angezeigt wird. Sie können beispielsweise die Adressleiste
und den Browser Chrome ausblenden. Spiele können sogar im Vollbildmodus gestartet werden.
Im Folgenden finden Sie eine kurze Zusammenfassung der Anzeigemodi, die zum Zeitpunkt der Erstellung dieses Artikels festgelegt wurden.
Attribut | Verwendung |
---|---|
fullscreen |
Öffnet die Webanwendung ohne Browser-UI und nimmt den verfügbaren Anzeigebereich ein. |
standalone |
Öffnet die Web-App, damit sie wie eine eigenständige Anwendung aussieht. Die Anwendung wird in einem eigenen Fenster getrennt vom Browser ausgeführt und blendet standardmäßige Browser-UI-Elemente wie die URL-Leiste aus. |
minimal-ui |
Dieser Modus ähnelt standalone , bietet dem Nutzer jedoch einen minimalen Satz von UI-Elementen, um die Navigation zu steuern (z. B. Zurück und Aktualisieren).
|
browser |
Eine standardmäßige Browsernutzung. |
Diese Anzeigemodi folgen einer klar definierten Fallback-Kette ("fullscreen"
→ "standalone"
→ "minimal-ui"
→ "browser"
). Wenn ein Browser einen bestimmten Modus nicht unterstützt, wird auf den nächsten Anzeigemodus in der Kette zurückgegriffen.
Schwachstellen der Property display
Bei diesem Ansatz mit fest verkabelter Fallback-Kette besteht das Problem dreifach:
- Ein Entwickler kann
"minimal-ui"
nicht anfordern, ohne wieder in den"browser"
-Anzeigemodus versetzt zu werden, für den Fall, dass"minimal-ui"
von einem bestimmten Browser nicht unterstützt wird. - Entwickler haben keine Möglichkeit, browserübergreifende Unterschiede zu verarbeiten, z. B. ob der Browser eine Zurück-Schaltfläche im Fenster für den
"standalone"
-Modus ein- oder ausschließt. - Das aktuelle Verhalten macht es unmöglich, neue Anzeigemodi abwärtskompatibel einzuführen, da explorative Datenanalysen wie den Anwendungsmodus mit Tabs keinen natürlichen Platz in der Fallback-Kette haben.
Das Attribut display_override
Diese Probleme werden durch das Attribut display_override
gelöst, das der Browser vor dem Attribut display
berücksichtigt. Sein Wert ist eine Folge von Strings, die als geordnet betrachtet werden, und der erste unterstützte Anzeigemodus wird angewendet. Wenn keine unterstützt werden, wertet der Browser das Feld display
aus.
Im folgenden Beispiel sähe die Fallback-Kette für den Anzeigemodus so aus:
(Die Details zu "window-controls-overlay"
werden in diesem Artikel nicht behandelt.)
"window-controls-overlay"
(Sieh dir zuerstdisplay_override
an.)"minimal-ui"
"standalone"
(Wenndisplay_override
aufgebraucht ist, wirddisplay
ausgewertet.)"minimal-ui"
(Verwenden Sie zuletzt die Fallback-Kettedisplay
.)"browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
Zur Aufrechterhaltung der Abwärtskompatibilität ist jeder zukünftige Anzeigemodus nur mit dem Wert display_override
akzeptabel, aber nicht mit display
.
Browser, die display_override
nicht unterstützen, greifen auf das Attribut display
zurück und ignorieren display_override
als unbekanntes Web-App-Manifestattribut.
Nützliche Links
- Erklärung
- Thread „Intent to Ship“
- Chromium-Fehler
- Chrome-Statuseintrag
- Manifest-Inkubations-Repository
Danksagung
Die Property display_override
wurde von Daniel Murphy formalisiert.