scope_extensions
scope_extensions 清單成員用於將 Web 應用的範圍擴充套件到包含其他源。這允許將多個域呈現為一個 Web 應用。
語法
"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"}
]
值
scope_extensions-
一個包含以下屬性的物件的陣列
描述
scope_extensions 清單成員可以擴充套件 Web 應用的範圍以包含其他源。典型用例包括:
- 用於內容或功能的不同子域,例如
https://support.example.com、https://shop.example.com、https://maps.example.com、https://auth.example.com。 - 用於語言/地區的不同子域,例如
https://uk.example.com、https://de.example.com、https://jp.example.com、https://no.example.com。 - 相關的獨立域,例如
https://example.jp、https://my-example.com、https://my-partner-site.com、https://example.slack.com。
主 Web 應用(例如 https://example.com)需要在其 scope_extensions 清單成員中包含其希望包含在其範圍內的源。
{
"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" }
]
}
透過 .well-known 檔案選擇加入
要選擇加入關聯,在 Web 應用的 scope_extensions 清單成員中指定為範圍內的站點的源需要在相對 URL /.well-known/web-app-origin-association 處包含一個名為 web-app-origin-association 的 .well-known 檔案。這必須包含一個 JSON 結構,其中包含一個或多個屬性,這些屬性的鍵等於該站點選擇加入範圍的每個 Web 應用的 id 清單成員。
例如
{
"https://example.com": {
"scope": "/"
},
"https://beta.example.com": {
"scope": "/"
}
}
每個屬性的值是一個物件,其中包含一個 scope 屬性,其值指定將包含在引用 Web 應用範圍內的確切路徑。
注意:無法為同一個 Web 應用指定不同的範圍 — 您不能為同一個鍵包含多個條目。
scope_extensions 的效果
一旦 Web 應用的 scope_extensions 中包含的源成功選擇加入,您就可以連結到這些源範圍內的位置,並且當點選連結時,這些位置將顯示在應用視窗中,與位於 Web 應用自身範圍內的位置一樣。
如果您點選連結到不在 Web 應用範圍內的位置,它將按預期顯示為外部位置。
示例
以位於 https://example.com/app 的示例 Web 應用為例
{
"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" }
]
}
為了選擇加入該應用的範圍,https://example.co.uk 和 https://help.example.com 需要包含一個如下所示的 /.well-known/web-app-origin-association 檔案。
{
"https://example.com/app": {
"scope": "/"
}
}
規範
| 規範 |
|---|
| 清單孵化 # scope_extensions 成員 |
瀏覽器相容性
載入中…
另見
scopemanifest 成員