跳转到内容

Windows 上的 PWA

发布于 更新于

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

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

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

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

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

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

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

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 自身的应用和功能设置测试卸载 行为,微软的文档将两者都记录为有效的管理入口。