跳转到内容

manifest: scope_extensions 支持情况

发布于 更新于

manifest: scope_extensions —— 一个 Web App Manifest 成员,让已安装的 PWA 的 导航范围扩展到其他源,每个源都需要通过托管在该源上的 .well-known/web-app-origin-association 文件主动接入。根据该 explainer 的说明, 由于托管关联文件即可将一个源加入另一个应用的范围,因此建议该应用与被关联的源 归属同一实体。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
Chrome (Desktop)支持138高来源—
Chrome (Android)支持138高来源1
Edge (Desktop)支持138高来源2
Firefox (Desktop)不支持—高来源3
Firefox (Android)不支持—高来源45
Safari (macOS)不支持—高来源6
Safari (iOS)不支持—高来源78
Samsung Internet支持30.0高来源9
WebView (Android)支持138高来源10
  1. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  2. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  3. browser-compat-data 未记录 Firefox 的支持。
  4. browser-compat-data 未记录 Firefox for Android 的支持。
  5. 由 browser-compat-data 镜像自 Firefox 的数据推导。
  6. browser-compat-data 未记录 Safari 的支持。
  7. browser-compat-data 未记录 iOS 版 Safari 的支持。
  8. 由 browser-compat-data 镜像自 Safari 的数据推导。
  9. 由 browser-compat-data 镜像自 Chrome Android 的数据推导。
  10. 由 browser-compat-data 镜像自 Chrome Android 的数据推导。

源数据: /compatibility/manifest-scope-extensions.json · 全球使用占比: 72 % (StatCounter 2026-05)

来源: 规范 · MDN · 最近核验 2026-10-03 · 置信度: 高 (由来源计算)

根据 browser-compat-data 的记录,Android 版 Chrome 的条目被标记为桌面版 Chrome 条目的镜像,意味着其支持数据是继承自桌面条目。

在 manifest 中声明要扩展的源:

{
"scope_extensions": [
{ "type": "origin", "origin": "https://help.example.com" },
{ "type": "origin", "origin": "https://example.de" }
]
}

根据该 explainer 的说明,每个被列出的源都必须通过托管 /.well-known/web-app-origin-association 来主动接受,其中命名了应用的 manifest id:

{
"https://example.com/app": {
"scope": "/"
}
}

根据 MDN 的说明,该文件在两个方向上建立关联——应用在其 manifest 中声明扩展, 目标源则明确对此进行授权。

两份来源都没有定义能把浏览器是否识别 scope_extensions 回传给页面的 JavaScript API。下面的代码只能检测页面已有的 manifest 对象中是否声明了该 成员——无法确认浏览器是否真的应用了它——并在该成员缺失或格式不对时回退为空列表:

function getScopeExtensions(manifest) {
if (!('scope_extensions' in manifest) || !Array.isArray(manifest.scope_extensions)) {
// 成员缺失或格式不对——回退为不扩展范围。
return [];
}
return manifest.scope_extensions;
}
  • 根据 MDN 的说明,这是一项实验性特性——在生产环境中依赖它之前,请先检查当前的 浏览器支持情况。
  • 根据 browser-compat-data 的记录,Android 版 Chrome 镜像自桌面版 Chrome 条目, 因此其列出的支持数据是继承自桌面条目。
  • 根据 MDN 的说明,正确接入后,跳转到应用(扩展)范围之外的链接会“如预期般显示 为外部位置”。
  • 根据该 explainer 的说明,当应用窗口中的页面导航到(扩展)范围之外的 URL 时, 部分浏览器实现可能会打开新标签页或普通浏览器窗口中的浏览上下文,而不是留在 应用窗口内。
  • 根据该 explainer 的说明,每个被扩展的源都必须托管自己的 /.well-known/web-app-origin-association 文件——如果目标源上的文件缺失或 配置有误,无论应用自身的 manifest 中如何声明,该扩展都不会被授权。

← 返回兼容性浏览器。