scope_extensions
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Der scope_extensions
Manifestmitglied wird verwendet, um den Umfang einer Webanwendung auf andere Ursprünge zu erweitern. Dies ermöglicht es, mehrere Domains als eine einzige Webanwendung darzustellen.
Syntax
"scope_extensions": [
{ "type": "origin", "origin": "https://support.example.com"},
{ "type": "origin", "origin": "https://shop.example.com"},
{ "type": "origin", "origin": "https://example.de"},
{ "type": "origin", "origin": "https://example.co.uk"}
]
Werte
scope_extensions
-
Ein Array von Objekten, die jeweils die folgenden Eigenschaften enthalten:
Beschreibung
Der scope_extensions
Manifestmitglied kann den Umfang einer Webanwendung erweitern, um andere Ursprünge einzuschließen. Typische Anwendungsfälle sind:
- Verschiedene Subdomains für Inhalte oder Funktionalitäten, zum Beispiel
https://support.example.com
,https://shop.example.com
,https://maps.example.com
,https://auth.example.com
. - Verschiedene Subdomains für Sprache/Locale, zum Beispiel
https://uk.example.com
,https://de.example.com
,https://jp.example.com
,https://no.example.com
. - Verwandte unabhängige Domains, zum Beispiel
https://example.jp
,https://my-example.com
,https://my-partner-site.com
,https://example.slack.com
.
Die Haupt-Webanwendung (zum Beispiel, https://example.com
) muss die Ursprünge, die sie in ihren Umfang aufnehmen möchte, in ihrem scope_extensions
Manifestmitglied einbeziehen:
"scope_extensions": [
{ "type": "origin", "origin": "https://example.jp"},
{ "type": "origin", "origin": "https://my-example.com"},
{ "type": "origin", "origin": "https://my-partner-site.com"},
{ "type": "origin", "origin": "https://example.slack.com"}
]
Opt-in über eine .well-known Datei
Um sich für die Assoziation anzumelden, müssen die Websites, deren Ursprünge im scope_extensions
Manifestmitglied der Webanwendung als in-Scope angegeben sind, eine .well-known Datei namens web-app-origin-association
unter einer relativen URL von /.well-known/web-app-origin-association
enthalten. Diese muss eine JSON-Struktur enthalten, die eine oder mehrere Eigenschaften enthält, deren Schlüssel den id
Manifest-Mitgliedern jeder Webanwendung entsprechen, in deren Umfang die Website aufgenommen werden soll.
Zum Beispiel:
{
"https://example.com": {
"scope": "/"
},
"https://beta.example.com": {
"scope": "/"
}
}
Der Wert jeder Eigenschaft ist ein Objekt, das eine scope
Eigenschaft enthält, mit einem Wert, der den genauen Pfad angibt, der im Umfang der referenzierenden Webanwendung liegen wird.
Hinweis: Es ist nicht möglich, verschiedene Umfänge für dieselbe Webanwendung anzugeben — Sie können nicht mehrere Einträge für denselben Schlüssel einbeziehen.
Effekt von scope_extensions
Sobald die in der scope_extensions
der Webanwendung enthaltenen Ursprünge erfolgreich angemeldet sind, können Sie dann zu Orten innerhalb des Umfangs dieser Ursprünge verlinken, und wenn die Links gefolgt werden, erscheinen die Orte im App-Fenster genauso wie Orte innerhalb des eigenen Umfangs der Webanwendung.
Wenn Sie einem Link zu einem Ort folgen, der nicht im Umfang der Webanwendung liegt, wird er wie erwartet als externer Ort angezeigt.
Beispiele
Nehmen Sie eine Beispiel-Webanwendung unter https://example.com/app
:
{
"id": "https://example.com/app",
"name": "My App",
"icons": [
{
"src": "icon/hd_hi",
"sizes": "128x128"
}
],
"start_url": "/app/index.html",
"scope": "/app",
"display": "standalone",
"scope_extensions": [
{ "type": "origin", "origin": "https://example.co.uk" },
{ "type": "origin", "origin": "https://help.example.com" }
]
}
Um sich in den Umfang der App einzuschreiben, müssten https://example.co.uk
und https://help.example.com
einen /.well-known/web-app-origin-association
enthalten, der folgendermaßen aussieht:
{
"https://example.com/app": {
"scope": "/"
}
}
Hinweis: Sehen Sie sich die Scope Extensions API Demo für ein funktionierendes Beispiel an.
Spezifikationen
Specification |
---|
Manifest Incubations # scope_extensions-member |
Browser-Kompatibilität
Siehe auch
scope
Manifestmitglied