# Windows 上的 PWA

> Microsoft Edge 如何在 Windows 上安装 PWA，并将其集成到任务栏、开始菜单与 Alt+Tab 切换中，以及 FSLogix 注销限制。

**一句话：** 在 Windows 上，Microsoft Edge 通过自身的安装功能安装满足条件的
PWA；根据微软的文档，安装后该应用会"像其他应用一样"运行——出现在任务栏
（可以固定在那里）、显示在开始菜单，并在使用 Alt+Tab 切换窗口时出现。

## 在 Windows 上安装

根据微软的 UX 文档，当 Edge 判断某个网站是可安装的 PWA 时，地址栏会出现
一个"可用应用"图标。点击该图标会打开安装浮层，其中包含"安装"按钮；安装
完成后，"该 PWA 会在 Windows 中运行"。

许多 PWA 也会在 Microsoft Store 中上架，根据微软概述文档的说法，它们
"在 Microsoft Store 中被当作其他应用对待"，因此用户可以从发现、安装到
运行都无需打开浏览器。

## 与 Windows 的集成

根据微软的文档，已安装的 PWA 会像原生应用一样显示在 Windows 中：

- 出现在**任务栏**中，可以被固定。
- 出现在**开始菜单**中。
- 使用 **Alt+Tab** 切换应用时会显示。

用户还可以将已安装的 PWA 设置为登录 Windows 时自动启动，既可以在安装过程中
设置，也可以之后在 `edge://apps` 中设置。

## 如何使用

根据 MDN 的 CSS 文档，`display-mode` 是一个媒体特性，当"应用的外观和体验
将与独立应用一致"（包括"在应用启动器中拥有自己的图标"）时，其
`standalone` 值匹配。根据 MDN 的 `Window.matchMedia()` 文档，该方法
"返回一个新的 `MediaQueryList` 对象，可用于判断文档是否匹配该媒体
查询"，因此可以从脚本中查询这一 CSS 媒体特性：

```js
function isStandaloneDisplayMode() {
  if (!('matchMedia' in window)) {
    // 回退：matchMedia 不可用——视为普通浏览器标签页。
    return false;
  }
  return window.matchMedia('(display-mode: standalone)').matches;
}

if (isStandaloneDisplayMode()) {
  // 正处于 standalone 显示模式：跳过安装引导。
} else {
  // 展示安装的行动号召。
}
```

## 检测与回退

上面的 `isStandaloneDisplayMode()` 就是特性检测步骤：它在调用 `matchMedia` 之前先
检测其是否存在，并在该 API 不可用时回退为把页面当作普通浏览器标签页处理，
而不是抛出异常。

## 支持情况

本条目描述的是 Microsoft Edge 在 Windows 上的具体行为，依据微软自身的
文档。上文查询的 `display-mode: standalone` 媒体特性属于 MDN 记录的
CSS Media Queries 规范，并非 Windows 或 Edge 专属。

## 实用检查清单

- [ ] 不要假设所有用户都从浏览器安装——微软的文档说明许多 PWA 也可以直接
      从 Microsoft Store 的应用页面安装。
- [ ] 根据微软的文档，PWA **在 FSLogix 环境中不受支持**：可以在该环境中
      安装 PWA，但用户注销再登录后安装会丢失。请提醒 FSLogix/虚拟桌面用户，
      或不要在该环境中依赖持久化的 Windows 安装。
- [ ] 通过 `edge://apps` 或 Windows 自身的**应用和功能**设置测试卸载
      行为，微软的文档将两者都记录为有效的管理入口。

## 下一步

- [Microsoft Edge 上的 PWA（侧边栏、应用商店）](/zh/reference/platforms/edge/)
- [桌面安装](/zh/reference/installation/desktop-install/)
- [WebAPK 可用性](/zh/compatibility/webapk/)