# Windows 上的 PWA

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

在 Windows 10 和 11 上，Microsoft Edge 通过地址栏图标或菜单项安装 PWA，安装后的应用像其他 Windows 应用一样运行：有自己的窗口和标题栏应用菜单，出现在任务栏、开始菜单和 Alt+Tab 中，并与其他已安装应用一起列在 Windows 设置里。

## 工作原理

Microsoft 在 Microsoft Learn（[Use Progressive Web Apps in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/ux)，日期 2025-10-15）和 Microsoft 支持站上记载了面向用户的流程；下文的标签均引自这两页（英文界面）。

### Edge 中的两条安装路径

当 Edge 判定网站可安装时，地址栏出现 **App available** 图标；点击它弹出带 **Install** 按钮的浮窗。任何网站，无论是否可安装，都可以通过 **Settings and more (…) > More tools > Apps > Install this site as an app** 安装。安装完成后出现的对话框提供 **Pin to Start** 和 **Auto-start on device login** 两个复选框，应用在自己的窗口中打开。许多 PWA 也上架在 Microsoft Store，点击 **Get** 按钮即可安装，无需打开 Edge。

### 已安装窗口

已安装 PWA 的窗口标题栏上有一个 **Settings and more (…)** 按钮，打开 **App info** 菜单：应用图标、名称和发布者（服务器域名），命令 **Pin to taskbar**、**Pin to Start**、**App settings**，以及子菜单 **Privacy**（包含正在使用的 Cookie 数量）、**Extensions** 和 **More tools**。manifest 中声明的快捷方式出现在任务栏图标的右键菜单里。

### 管理与卸载

已安装应用列在 `edge://apps`，卡片上的 **Details** 提供 **Auto-start on device login** 开关、**Pin to taskbar**、**Pin to Start**、**Create Desktop shortcut** 和 **Uninstall**；卸载时会询问是否同时删除应用的历史记录和数据。同一批应用也出现在 Windows 设置的 **Add or remove programs** 中（旧版本显示为 **Apps & features**），管理员可以像其他应用一样移除它们。

### FSLogix 限制

Microsoft 列出一条已知限制：FSLogix 环境不支持 PWA。安装会成功，但用户注销再登录后，已安装的 PWA 就不见了。依赖持久 Windows 安装的虚拟桌面部署应提醒用户，或改为通过 Microsoft Store 分发。

## 示例

下面的检测使用标准的 `display-mode` 媒体特性，它不是 Edge 专有的；Edge 只是 Windows 上已安装窗口出现的地方。

### 在已安装窗口内跳过安装推介

页面在已安装窗口而非浏览器标签页中运行时，`(display-mode: standalone)` 匹配。

```js
function isStandaloneDisplayMode() {
  if (typeof window.matchMedia !== 'function') {
    return false; // 没有 matchMedia：当作普通标签页
  }
  return window.matchMedia('(display-mode: standalone)').matches;
}

if (isStandaloneDisplayMode()) {
  document.getElementById('install-cta').hidden = true;
} else {
  document.getElementById('install-cta').hidden = false;
}
```

回退返回 `false`，这样没有 `matchMedia` 的引擎看到的是安装号召，而不是报错。

### 在标签页与应用之间切换时作出响应

同一个源可以同时在已安装窗口和标签页中打开，而页面的呈现方式变化时 `MediaQueryList` 会报告，所以这个模式值得监听，而不是只读一次。

```js
const standalone = window.matchMedia('(display-mode: standalone)');

function applyMode(matches) {
  document.body.classList.toggle('installed', matches);
}

applyMode(standalone.matches);
standalone.addEventListener('change', (event) => applyMode(event.matches));
```

这个类只用于布局（隐藏重复的标题、收紧标题栏下方的留白）；功能在两种模式下应保持一致。

## 实测行为

App info 菜单是从窗口内部确认页面正以已安装 PWA 运行、以及它从哪个源安装的最快方式。

:::observed
Windows 11 上 Microsoft Edge 中的已安装 PWA（英文界面）：窗口标题栏的 **Settings and more (…)** 按钮打开 "App info" 菜单，显示应用图标、名称和发布者域名，命令 "Pin to taskbar"、"Pin to Start"、"App settings"，以及一个列出正在使用的 Cookie 数量的 "Privacy" 子菜单。见 Microsoft Learn 的 [Use Progressive Web Apps in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/ux)（2025-10-15）。
:::

发布者一行显示的是应用安装来源的源，这是在测试机上确认没有混淆预发布安装和生产安装的最快检查。

## 另请参阅

- [Microsoft Edge 上的 PWA（侧边栏、应用商店）](/zh/reference/platforms/edge/)
- [桌面安装](/zh/reference/installation/desktop-install/)
- [安装快捷方式](/zh/reference/installation/install-shortcuts/)
- [Use Progressive Web Apps in Microsoft Edge](https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/ux)（learn.microsoft.com）
- [Install, manage, or uninstall apps in Microsoft Edge](https://support.microsoft.com/en-us/edge/install-manage-or-uninstall-apps-in-microsoft-edge)（support.microsoft.com）