id
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Das id
Manifestmitglied wird verwendet, um einen eindeutigen Bezeichner 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
-
Eine Zeichenkette, die die Form einer URL annimmt. Die URL muss mit dem
start_url
Ihrer Web-App gleich ursprungsbezogen sein. Wennid
eine relative URL ist, wird sie unter Verwendung des Ursprungs vonstart_url
aufgelöst. Jegliche Fragmente imid
werden immer ignoriert. Wennid
nicht angegeben ist oder der Wert in irgendeiner Weise ungültig ist (zum Beispiel keine Zeichenkette, keine gültige URL, nicht gleich ursprungsbezogen mitstart_url
), wird derstart_url
-Wert verwendet.
Beschreibung
Das id
Manifestmitglied dient als eindeutiger Bezeichner für Ihre Web-App. Es ermöglicht Browsern, zwischen verschiedenen Anwendungen zu unterscheiden:
- Wenn ein Browser auf ein App-Manifest mit einem
id
stößt, das nicht mit einer bereits installierten Anwendung übereinstimmt, behandelt er dieses Manifest als Beschreibung einer eigenständigen Anwendung, selbst wenn sie von derselben URL wie eine andere Anwendung bereitgestellt wird. - Wenn ein Browser auf ein App-Manifest mit einem
id
stößt, das mit der Identität einer bereits installierten App übereinstimmt, behandelt er das neue Manifest als Ersatz für das bestehende App-Manifest, selbst wenn die App von einer anderen URL als die vorher installierte bereitgestellt wird.
Hinweis:
Während das id
wie eine URL verarbeitet wird, verweist es nicht auf eine Ressource, die zugänglich ist, daher muss es sich nicht im scope der App befinden.
Das id
kann auch von Diensten verwendet werden, die Web-App-Listen sammeln, um Anwendungen eindeutig zu identifizieren.
Einige wichtige Punkte, die bei der Verwendung des id
-Mitglieds zu beachten sind:
- Verwenden Sie einen vorangestellten
/
, um anzugeben, dass dasid
ein root-relativer URL-Pfad ist. - Da
id
gegen den Ursprung vonstart_url
aufgelöst wird, lösenid
-Werte wie../foo
,foo
,/foo
und./foo
alle zum selben Bezeichner relativ zum Ursprung auf. Zum Beispiel, wennstart_url
https://example.com/app/
ist, werden all dieseid
-Werte zuhttps://example.com/foo/
aufgelöst. - Standardmäßige URL-Codierungs- und -Decodierungsregeln gelten, wenn der
id
-Wert aufgelöst wird. - Fragmente im
id
werden während der Verarbeitung entfernt. Zum Beispiel, wennid
auffoo#bar
gesetzt ist, wird es alsfoo
aufgelöst. Ebenso, wennid
undefiniert ist undstart_url
https://example.com/app/#home
ist, wirdid
zuhttps://example.com/app/
aufgelöst. - Abfrageparameter im
id
werden beibehalten und im endgültig aufgelösten Bezeichner eingeschlossen.
Beispiele
Erstellen einer eigenständigen App-Version
Angenommen, Sie erstellen eine Web-App mit folgendem Manifest:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/v1",
"start_url": "https://example.com/app"
}
Wenn Sie später eine weitere Version dieser App mit wesentlichen Änderungen erstellen und sie als andere App behandelt werden soll, können Sie das Manifest folgendermaßen hinzufügen:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/v2",
"start_url": "https://example.com/app"
}
In diesem Fall behandeln Browser, selbst wenn beide Manifestdateien von derselben URL bereitgestellt werden, das neue Manifest als Beschreibung einer eigenständigen Anwendung, da das id
unterschiedlich ist. Infolgedessen können Benutzer beide Versionen gleichzeitig installiert haben.
Aktualisieren einer bestehenden App
Betrachten Sie ein Szenario, in dem Sie eine Web-App mit folgendem Manifest bereitstellen:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/",
"start_url": "https://old-domain.com/app"
}
Wenn Sie sich jedoch später entscheiden, die App auf eine andere Domain zu verschieben, würden Sie das Manifest wie folgt aktualisieren:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/",
"start_url": "https://new-domain.com/app"
}
Browser behandeln dieses neue Manifest als Aktualisierung der bestehenden App, weil die id
-Werte übereinstimmen. In diesem Fall erhalten Benutzer ein Update ihrer bestehenden App, anstatt aufgefordert zu werden, eine neue App zu installieren.
Verständnis der id
-Auflösung
Angenommen, der start_url
Ihrer 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östes id |
Erklärung |
---|---|---|
undefiniert | https://example.com/my-app/home |
Standardmäßig start_url |
"" |
https://example.com/my-app/home |
Leere Zeichenkette wird zu start_url |
/ |
https://example.com/ |
Root-relativer URL |
foo?x=y |
https://example.com/foo?x=y |
Relativer Pfad aufgelöst gegen den Ursprung von start_url mit beibehaltenen Abfrageparametern |
foo#heading |
https://example.com/foo |
Relativer Pfad aufgelöst gegen den Ursprung von start_url mit entferntem Fragment |
https://anothersite.com/foo |
https://example.com/my-app/home |
Cross-Origin-URL nicht erlaubt, fällt auf start_url zurück |
😀 |
https://example.com/%F0%9F%98%80 |
Nicht-ASCII-Zeichen in URL codiert |
Spezifikationen
Specification |
---|
Web Application Manifest # id-member |
Browser-Kompatibilität
BCD tables only load in the browser