跳转到内容

安装 · 概念

卸载已安装的 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 列出了它时才报告其存在,所以结果从一项变为零是最接近的信号,而且只能在下一次于标签页中访问时观察到。

规范

规范状态
无。