id
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Das Manifestmitglied id
wird verwendet, um eine eindeutige Kennung für Ihre Webanwendung anzugeben.
Syntax
/* Absolute URL */
"id": "https://example.com/myapp"
/* Relative URL */
"id": "myapp/v2"
/* URL with query parameters */
"id": "myapp?version=2&mode=trial"
Werte
id
-
Ein String, der die Form einer URL annimmt. Die URL muss denselben Ursprung wie die
start_url
Ihrer Webanwendung haben. Wennid
eine relative URL ist, wird sie unter Verwendung des Ursprungs vonstart_url
aufgelöst. Jegliches Fragment in derid
wird immer ignoriert. Wennid
nicht angegeben wird oder der Wert in irgendeiner Weise ungültig ist (z. B. nicht ein String, keine gültige URL, nicht denselben Ursprung wiestart_url
), wird der Wert vonstart_url
verwendet.
Beschreibung
Das Manifestmitglied id
dient als eindeutige Kennung für Ihre Webanwendung. Es erlaubt Browsern, zwischen verschiedenen Anwendungen zu unterscheiden:
- Wenn ein Browser auf ein App-Manifest mit einer
id
trifft, die nicht einer bereits installierten Anwendung entspricht, behandelt er dieses Manifest als Beschreibung einer eigenständigen Anwendung, selbst wenn es von derselben URL wie eine andere Anwendung bereitgestellt wird. - Wenn ein Browser auf ein App-Manifest mit einer
id
trifft, die mit der Identität einer bereits installierten Anwendung übereinstimmt, behandelt er das neue Manifest als Ersatz für das bestehende Manifest der App, selbst wenn die App von einer anderen URL als der zuvor installierten bereitgestellt wird.
Hinweis:
Während die id
wie eine URL verarbeitet wird, zeigt sie nicht auf eine zugängliche Ressource, sodass sie nicht innerhalb des scope der App liegen muss.
Die id
kann auch von Diensten verwendet werden, die Sammlungen von Web-Apps führen, um Anwendungen eindeutig zu identifizieren.
Nutzungshinweise
Einige wichtige Punkte, die bei der Verwendung des id
Mitglieds zu beachten sind:
- Es wird als empfohlene Praxis angesehen, ein führendes
/
zu verwenden, um anzugeben, dassid
ein root-relativer URL-Pfad ist. - Da
id
relativ zum Ursprung derstart_url
aufgelöst wird, führenid
Werte wie../foo
,foo
,/foo
und./foo
alle zur gleichen Kennung relativ zum Ursprung. Zum Beispiel, wennstart_url
https://example.com/app/
ist, werden all dieseid
Werte zuhttps://example.com/foo/
aufgelöst. - Standardregeln zur URL-Codierung und -Decodierung gelten beim Auflösen des
id
Werts. - Fragmente in der
id
werden während der Verarbeitung entfernt. Zum Beispiel, wennid
auffoo#bar
gesetzt ist, wird sie alsfoo
aufgelöst. Ebenso, wennid
nicht definiert ist undstart_url
https://example.com/app/#home
ist, wirdid
zuhttps://example.com/app/
aufgelöst. - Abfrageparameter in der
id
werden beibehalten und in die endgültige aufgelöste Kennung eingeschlossen.
Verständnis der id
Auflösung
Angenommen, die start_url
für Ihre App ist https://example.com/my-app/home
. Die folgende Tabelle zeigt, wie verschiedene id
Werte im Manifest aufgelöst werden:
id im Manifest |
Aufgelöste id |
Erklärung |
---|---|---|
undefiniert | https://example.com/my-app/home |
Standardmäßig als start_url |
"" |
https://example.com/my-app/home |
Leerer String wird als start_url aufgelöst |
/ |
https://example.com/ |
Root-relative URL |
foo?x=y |
https://example.com/foo?x=y |
Relativer Pfad, aufgelöst gegen den Ursprung der start_url mit beibehaltenen Abfrageparametern |
foo#heading |
https://example.com/foo |
Relativer Pfad, aufgelöst gegen den Ursprung der start_url mit entferntem Fragment |
https://anothersite.com/foo |
https://example.com/my-app/home |
Fremdursprungs-URL nicht erlaubt, fällt auf start_url zurück |
😀 |
https://example.com/%F0%9F%98%80 |
Nicht-ASCII-Zeichen in URL codiert |
Beispiele
Erstellung einer eigenständigen App-Version
Angenommen, Sie erstellen eine Webanwendung mit folgendem Manifest:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/v1",
"start_url": "https://example.com/app"
}
Wenn Sie später eine andere Version dieser App mit erheblichen Änderungen erstellen und möchten, dass sie als eine andere App behandelt wird, können Sie das Manifest wie folgt hinzufügen:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/v2",
"start_url": "https://example.com/app"
}
In diesem Fall werden die neuen Manifestdateien von den Browsern als Beschreibung einer eigenständigen Anwendung behandelt, da die id
s unterschiedlich sind. Dadurch können Benutzer beide Versionen gleichzeitig installiert haben.
Aktualisierung einer bestehenden App
Betrachten Sie ein Szenario, in dem Sie eine Webanwendung mit folgendem Manifest bereitstellen:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/",
"start_url": "https://example.com/old-app"
}
Entscheiden Sie sich später, die App auf einen anderen Pfad zu verschieben, aktualisieren Sie das Manifest wie folgt:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/",
"start_url": "https://example.com/new-app"
}
Browser werden dieses neue Manifest als Aktualisierung der bestehenden App behandeln, da die id
Werte übereinstimmen. In diesem Fall erhalten Benutzer ein Update ihrer bestehenden App, anstatt zur Installation einer neuen App aufgefordert zu werden.
Spezifikationen
Specification |
---|
Web Application Manifest # id-member |