Chrome 如何处理 Web 应用清单的更新

如何更改 PWA 的图标、快捷方式、颜色和其他元数据

安装 PWA 后,浏览器会使用 Web 应用中的信息 应用名称、应用应该使用的图标以及 应在应用启动时打开但如果您需要更新 或者尝试新的主题颜色?这些更改何时以及如何实施 是否体现在浏览器中?

在大多数情况下,相应更改应该会在 在更新清单后启动 PWA。

桌面版 Chrome 的更新

当启动 PWA 或在浏览器标签页中打开 PWA 时,Chrome 会确定 上次检查本地清单是否有更改的时间。如果清单没有 自浏览器上次启动以来尚未检查过,或者尚未在 那么 Chrome 将针对该清单提出网络请求,然后 将其与本地副本进行比较

如果清单中的部分属性发生了变化(参见下面的列表),Chrome 将新清单加入队列,并在关闭所有窗口后进行安装。 安装后,新清单中的所有字段(nameshort_name、 和 icons)。

哪些房源会触发更新?

  • display(见下文)
  • scope
  • shortcuts
  • start_url
  • theme_color
  • file_handlers

更新 display 字段后会出现什么情况?

如果您将应用的显示模式从 browser 更新为 standalone, 现有用户在更新后将无法在窗口中打开他们的应用。那里 是 Web 应用的两项显示设置,一项来自清单 控件)以及由用户控制的窗口/浏览器标签页设置。用户 始终遵循偏好

测试清单更新

chrome://web-app-internals 页面(适用于 Chrome 85 或更高版本); 包含设备上安装的所有 PWA 的详细信息, 并帮助您了解清单的上次更新时间 更新等等

要手动强制 Chrome 检查更新的清单,您可以启动 带有命令行标记 --disable-manifest-update-throttle 的 Chrome 或重启 Chrome(使用 about://restart),此操作将重置计时器 将在下次启动 PWA 时检查是否有更新的清单。然后启动 PWA。关闭 PWA 后,应使用新的清单进行更新 属性。

参考

Chrome(Android 版)的最新动态

启动 PWA 时,Chrome 会确定上次本地清单的时间 已检查更改。如果清单在过去 24 天内未检查 Chrome 将为清单文件安排网络请求,然后比较 与本地副本进行对比

如果清单中的部分属性发生了变化(参见下面的列表),Chrome 将新清单加入队列,在关闭 PWA 的所有窗口后, 将设备插入并连接到 Wi-Fi,Chrome 会请求更新 来自服务器的 WebAPK。更新后,新清单中的所有字段都将 。

哪些房源会触发更新?

  • background_color
  • display
  • orientation
  • scope
  • shortcuts
  • start_url
  • theme_color
  • web_share_target

如果 Chrome 无法从服务器获取更新的清单,则可能会 请将两次检查之间的时间延长至 30 天。

测试清单更新

about://webapks 页面包含有关所有 设备上安装了 PWA,并且可以告知您该清单的上次使用时间 更新频率,等等。

要手动安排对清单的更新,覆盖计时器和 本地清单执行以下操作:

  1. 为设备接通电源,并确保其已连接到 Wi-Fi。
  2. 使用 Android 任务管理器关闭 PWA,然后使用“应用”面板 强制停止 PWA。
  3. 在 Chrome 中,打开 about://webapks 并点击“更新”按钮 PWA。“更新状态”应更改为“待处理”。
  4. 启动 PWA,并验证其是否已正确加载。
  5. 使用 Android 任务管理器关闭 PWA,然后使用“应用”面板 强制停止 PWA。

PWA 通常会在几分钟内更新,更新完成后, “更新状态”应更改为“成功”

参考