跳转到内容

manifest:display_override 的「tabbed」模式

发布于

manifest:display_override 的「tabbed」模式 —— 在清单的 display_override 数组中加入 "tabbed",并配合可选的 tab_strip 字段,可以让 PWA 打开一个应用窗口,用标签栏在应用作用 域内的多个文档之间切换,而不是为每个文档打开一个新窗口。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
Chrome (Desktop)支持126高来源—
Chrome (Android)支持126高来源1
Edge (Desktop)支持126高来源2
Firefox (Desktop)不支持—高来源3
Firefox (Android)不支持—高来源45
Safari (macOS)不支持—高来源6
Safari (iOS)不支持—高来源78
Samsung Internet支持28.0高来源9
WebView (Android)不支持—高来源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 未记录 WebView Android 的支持。

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

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

根据 Chrome for Developers 的说明,标签式应用模式“属于 capabilities 项目的一部分,目前已在 ChromeOS 上发布”。MDN 的兼容性数据将 tabbed 标记为实验性功能,并记录 Firefox 和 Safari 不支持它。

根据 Chrome for Developers 的说明,"tabbed" 必须通过 display_override 声明,而不能写在 display 中,因为它对不支持该模式的浏览器不具备向后兼容性:

{
"display": "standalone",
"display_override": ["tabbed"],
"tab_strip": {
"new_tab_button": {
"url": "/new"
}
}
}

如果省略 tab_strip,根据 Chrome for Developers 的文档,它将默认使用一个 new_tab_button, 其 url 为清单的 start_url。

根据 WICG 的 tabbed-mode 说明文档,应用通过 display-mode 媒体特性的 tabbed 取值来检测 标签栏,这与检测其他显示模式使用相同的机制:

function hasTabStripEnabled() {
if (!('matchMedia' in window)) {
// 不支持 matchMedia —— 假定没有标签栏。
return false;
}
return window.matchMedia('(display-mode: tabbed)').matches;
}
if (hasTabStripEnabled()) {
// 当前带有标签栏——跳过页面内自制的标签 UI。
} else {
// 没有标签栏:改为渲染应用自己的文档切换界面。
}
  • 不要把 "tabbed" 直接写进 display:根据 WICG 说明文档,它只在 display_override 中有效,两者都不支持的浏览器会回退到下一个取值(或 display)。
  • Chrome for Developers 称标签式应用模式已在 ChromeOS 上发布——请确保应用在标签栏没有 出现时也能正常工作。
  • 根据 Chrome for Developers 的说明,独立的浏览器标签可提供资源隔离。对于开发者自行构建 的标签,导航历史和“复制此页链接”等浏览器功能作用于标签界面页面,而不是当前选中的文档页面。
  • 如果配置了 home_tab,它不应发生导航;Chrome for Developers 称,从该标签点击的链接应在 新的应用标签中打开。

← 返回兼容性浏览器。