id
Das id
-Manifestmitglied 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 die gleiche Herkunft wie die
start_url
Ihrer Web-App haben. Wennid
eine relative URL ist, wird sie unter Verwendung der Herkunft vonstart_url
aufgelöst. Jedes Fragment in derid
wird immer ignoriert. Wennid
nicht festgelegt ist oder der Wert in irgendeiner Weise ungültig ist (z. B. kein String, keine gültige URL, nicht dieselbe Herkunft wiestart_url
), wird der Wert vonstart_url
verwendet.
Beschreibung
Das id
-Manifestmitglied dient als eindeutige Kennung für Ihre Web-App. Es ermöglicht Browsern, zwischen verschiedenen Anwendungen zu unterscheiden:
- Wenn ein Browser auf ein App-Manifest mit einer
id
stößt, die keiner bereits installierten Anwendung entspricht, behandelt er dieses Manifest als Beschreibung einer eigenen Anwendung, auch wenn es von derselben URL wie eine andere Anwendung bereitgestellt wird. - Wenn ein Browser auf ein App-Manifest mit einer
id
stößt, die mit der Identität einer bereits installierten App übereinstimmt, behandelt er das neue Manifest als Ersatz für das vorhandene App-Manifest, selbst wenn die App von einer anderen URL als der zuvor installierten bereitgestellt wird.
Hinweis: Obwohl die id
wie eine URL verarbeitet wird, verweist sie nicht auf eine Ressource, die aufgerufen werden kann, sodass sie nicht innerhalb des scope der App liegen muss.
Die id
kann auch von Diensten verwendet werden, die Listen von Web-Apps sammeln, um Anwendungen eindeutig zu identifizieren.
Einige wichtige Punkte, die Sie bei der Verwendung des id
-Mitglieds beachten sollten:
- Verwenden Sie ein führendes
/
, um anzugeben, dass dieid
ein root-relativer URL-Pfad ist. - Da
id
gegen den Ursprung vonstart_url
aufgelöst wird, werdenid
-Werte wie../foo
,foo
,/foo
und./foo
alle relativ zum Ursprung zum gleichen Bezeichner aufgelöst. Zum Beispiel: Wennstart_url
https://example.com/app/
ist, werden alle dieseid
-Werte zuhttps://example.com/foo/
aufgelöst. - Standard-URL-Kodierungs- und Dekodierungsregeln gelten beim Auflösen des
id
-Wertes. - Fragmente in der
id
werden während der Verarbeitung entfernt. Zum Beispiel: Wennid
auffoo#bar
gesetzt ist, wird es alsfoo
aufgelöst. Ebenso: Wennid
undefiniert ist und diestart_url
https://example.com/app/#home
ist, wirdid
zuhttps://example.com/app/
aufgelöst. - Abfrageparameter in der
id
werden beibehalten und in den endgültigen aufgelösten Bezeichner aufgenommen.
Beispiele
Erstellen einer eigenen App-Version
Angenommen, Sie erstellen eine Web-App mit dem folgenden 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 wesentlichen Änderungen erstellen und möchten, dass sie als eigene 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, auch wenn beide Manifestdateien von derselben URL bereitgestellt werden, behandeln Browser das neue Manifest als Beschreibung einer eigenen Anwendung, da die id
unterschiedlich ist. Daher können Benutzer beide Versionen gleichzeitig installiert haben.
Aktualisieren einer vorhandenen App
Betrachten Sie ein Szenario, in dem Sie eine Web-App mit dem folgenden Manifest bereitstellen:
{
"name": "My Weather Application",
"id": "https://example.com/weatherapp/",
"start_url": "https://old-domain.com/app"
}
Wenn Sie die App später auf eine andere Domain 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 ein Update der vorhandenen App, da die id
-Werte übereinstimmen. In diesem Fall erhalten die Benutzer ein Update ihrer vorhandenen App, anstatt zum Installieren einer neuen App aufgefordert zu werden.
Verständnis der id
-Auflösung
Angenommen, die 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öste id |
Erklärung |
---|---|---|
undefined | https://example.com/my-app/home |
Standardmäßig start_url |
"" |
https://example.com/my-app/home |
Leerer String wird zu start_url |
/ |
https://example.com/ |
Root-relative URL |
foo?x=y |
https://example.com/foo?x=y |
Relativer Pfad, aufgelöst gegenüber der Herkunft von start_url , mit erhaltenen Abfrageparametern |
foo#heading |
https://example.com/foo |
Relativer Pfad, aufgelöst gegenüber der Herkunft von start_url , mit entferntem Fragment |
https://anothersite.com/foo |
https://example.com/my-app/home |
Cross-origin URL nicht erlaubt, fällt zurück auf start_url |
😀 |
https://example.com/%F0%9F%98%80 |
Nicht-ASCII-Zeichen in URL kodiert |
Spezifikationen
Specification |
---|
Web Application Manifest # id-member |
Browser-Kompatibilität
BCD tables only load in the browser