Manifest display 显示模式:standalone、fullscreen、minimal-ui、browser
一句话: display 告诉浏览器在你的已安装 PWA 启动时要剥离多少自身界面。四个取值
构成一条回退链——fullscreen → standalone → minimal-ui → browser——不支持的取值
会悄然降级到下一档。standalone 是应用式窗口的常用默认值;display_override 则解锁
window-controls-overlay 等更新的模式。
四个 display 取值
Section titled “四个 display 取值”fullscreen— 在平台允许处占满整个屏幕,无浏览器界面、无系统状态栏。最适合游戏、 媒体等沉浸式内容。standalone— 在独立窗口打开,无地址栏、无标签栏,但保留系统级控件(状态栏、 返回手势)。这是典型的“像原生应用”的选择。minimal-ui— 类似standalone,但浏览器保留一组最小导航控件(通常是前进/后退/ 刷新)。当用户频繁导航、需要可见控件时有用。browser— 在普通浏览器标签或窗口中打开,带完整界面。实际上是拒绝应用式窗口; 在许多浏览器上这还会抑制安装提示。
每个取值在浏览器或平台不支持时会沿列表向下回退:
fullscreen → standalone → minimal-ui → browser- 请求
fullscreen;若不支持,浏览器改用standalone,再minimal-ui,再browser。 - 你只需设置想要的最高模式——其余由回退链处理。
browser是末端取值:它总能生效,且永不添加应用窗口。
用于新模式的 display_override
Section titled “用于新模式的 display_override”仅靠 display 无法表达固定链之外的模式。display_override 是一个有序数组,浏览器会
在回退到 display 之前逐项遍历它:
{ "display": "standalone", "display_override": ["window-controls-overlay", "minimal-ui"], "scope": "/app/"}- 浏览器按顺序尝试每个
display_override条目,然后回退到display。 window-controls-overlay允许你的内容在桌面端绘制到标题栏区域——适合生产力应用 的自定义工具栏。tabbed(在支持处)为已安装应用提供独立标签栏。- 未知条目会被跳过,因此
display_override在仍只识别普通display值的旧浏览器上能 优雅降级。
浏览器与生态支持
Section titled “浏览器与生态支持”| Browser / Platform | Support | Since | Confidence | Source | Notes |
|---|---|---|---|---|---|
| Chrome (Android) | ✅ yes | 39 | high | ref | — |
| Chrome (Desktop) | ✅ yes | 73 | high | ref | — |
| Edge (Desktop) | ✅ yes | 79 | high | ref | — |
| Safari (iOS) | ✅ yes | 11.3 | medium | ref | standalone honored; minimal-ui falls back to standalone. |
| Safari (macOS) | ✅ yes | 17 | medium | ref | — |
| Firefox (Desktop) | ❌ no | — | medium | ref | No desktop install path consuming display. |
| Samsung Internet | ✅ yes | 4.0 | high | ref | — |
display、可安装性与 scope
Section titled “display、可安装性与 scope”- 可安装性。 大多数浏览器要求 display 取值为
standalone、fullscreen或minimal-ui才会提供安装。设为browser的 manifest 通常不具备安装提示资格。 - 与 scope 的交互。
display决定域内页面显示多少界面;scope决定哪些 URL 算作应用内。当用户导航到scope之外时,无论你的display模式如何,浏览器都会重新 显示地址栏——display 无法让域外页面保持无界面。 - 起始上下文。 所选模式从
start_url起生效;落在域内的深度链接继承相同的显示处理。
如何选择 display 模式
Section titled “如何选择 display 模式”| 产品需求 | 建议 display |
理由 |
|---|---|---|
| 沉浸式游戏或媒体播放器 | fullscreen |
在允许处最大化屏幕,移除所有界面。 |
| 通用应用式体验 | standalone |
无地址栏的应用窗口;仍可安装。 |
| 用户频繁导航的内容 | minimal-ui |
保留可见的前进/后退/刷新控件。 |
| 自定义桌面标题栏 UI | display_override: ["window-controls-overlay"] + display: "standalone" |
绘制到标题栏;回退到 standalone。 |
| 想保持普通网站形态 | browser |
无应用窗口;通常无安装提示。 |
| 最大化安装资格 | standalone(或 fullscreen/minimal-ui) |
browser 在多数浏览器上使安装提示失效。 |
- 设置你想要的单一最高模式;让回退链处理旧浏览器。
- 除非有特定理由选用其它模式,否则使用
display: "standalone"。 - 若希望出现安装提示,避免使用
browser。 - 对更新的模式,将其列入
display_override并保留安全的display回退值。 - 若使用
window-controls-overlay,测试标题栏绘制区域,并在未授予覆盖时提供可用布局。 - 确认
scope与应用路径对齐——display不会在域外隐藏界面。 - 在每个目标平台测试已安装启动;即便
standalone,系统界面也各不相同。