安装 · 概念
卸载已安装的 PWA
发布于 更新于
卸载已安装的 web 应用是一项按平台进行的操作,在安装它的浏览器里或操作系统的应用列表中完成,而且移除的不只是图标:standalone 窗口注册、文件处理器与协议处理器注册,以及视平台而定的应用存储都会被移除。桌面端的 Chrome 与 Edge 在 chrome://apps、edge://apps 以及应用窗口自己的菜单中暴露该操作;Windows 在设置 › Apps 中列出 Chromium web 应用;iOS 上的 Safari 像删除其他应用一样删除主屏幕 web 应用;macOS 14 及以后的 Safari 从应用程序文件夹移除 Dock web 应用(MDN “Installing and uninstalling web apps”、Microsoft Edge PWA 文档)。
安装会把应用注册到操作系统(快捷方式或应用包、操作系统应用列表中的条目、可选的文件与协议处理器),卸载则通过平台提供的入口逆转这些注册。MDN 记载卸载“不止移除 PWA 的图标”,但没有逐条列举;各平台的入口如下:
| 平台 | 卸载操作的位置(英文界面) | 站点数据的去向 |
|---|---|---|
| Chrome,桌面端 | chrome://apps › 右键 › Remove from Chrome…;或应用窗口的三点菜单 › Uninstall [应用名]… |
复选框 Also clear data from Chrome (…) 提供删除该源存储的选项;不勾选则数据留在 Chrome 配置文件中 |
| Edge,桌面端 | edge://apps › 应用的 … 菜单或 Details › Uninstall;或应用窗口的 … 菜单 |
与 Chrome 相同的复选框模式 |
| Windows 10 与 11 | 设置 › Apps › Installed apps 把 Chromium web 应用与原生应用并列,发布者为安装它的浏览器;那里的 Uninstall 会转交给浏览器 | 由浏览器的对话框决定 |
| macOS 14+ Safari web 应用 | 在访达中把应用从 ~/Applications/ 拖到废纸篓 |
web 应用的独立数据存储随之移除 |
| iOS 与 iPadOS 16.4+ | 长按图标 › Remove App › Delete App;Remove from Home Screen 则把应用保留在 App 资源库 | 删除应用会删除它的隔离存储;Safari 标签页中同一源的数据不受影响 |
| Android,Chrome WebAPK | 设置 › 应用 › 该应用 › Uninstall,或把图标拖到 Uninstall | Chrome 保留该源在浏览器配置文件中的存储;WebAPK 本身没有独立存储 |
由于安装归属于执行它的浏览器,移除一个浏览器的副本不影响另一个(N+1 问题);页面也没有自身被卸载的事件:appinstalled 没有对应物,所以登出、推送订阅清理与服务端设备记录都无法由卸载本身触发。实际后果是一个取舍:要么不存放需要清理的东西(会过期的令牌、推送以 410 Gone 失败时在服务端剪除的订阅),要么接受被卸载的应用会留下陈旧记录。
以下标签来自各平台的英文界面以及“另请参阅”中列出的厂商文档。
Edge 文档记载的路径(edge://apps › Open › Details › Uninstall)最终进入同一个由浏览器拥有的对话框,Windows 的设置 › Apps 也是转交给它而不是自己删除文件。页面检测不到以上任何一步;getInstalledRelatedApps() 只在相关应用仍处于安装状态、来自同一浏览器且 manifest 列出了它时才报告其存在,所以结果从一项变为零是最接近的信号,而且只能在下一次于标签页中访问时观察到。
- Installing and uninstalling web apps(developer.mozilla.org)
- The UX of PWAs in Microsoft Edge(learn.microsoft.com)
- Web Push for Web Apps on iOS and iPadOS(webkit.org)
- N+1 安装问题
- 桌面端安装
- iOS 添加到主屏幕
- getInstalledRelatedApps()
规范
| 规范 | 状态 |
|---|---|
| 无。 | |