渐进式 Web 应用何时更新其清单文件的更改?

When does a progressive web app update on making a change to its manifest file?

我有一个渐进式 Web 应用程序,我希望对其清单文件进行更改,例如更改其 start_url、范围、图标、名称和 short_name。我想知道,渐进式网络应用程序的更新在对其清单进行更改后何时进行?我尝试了以下方法来强制更新 Chrome 浏览器上的网络应用程序:

但是,我想知道在完成清单文件更改后更新到 Web 应用程序的真正标准是什么?请有人附上支持相同的代码片段,这可能特定于 Chrome 如何实现它?

我进行了深入研究,以了解根据清单文件更改更新 Web 应用程序的确切标准,并且我能够在具有更新逻辑的 Chromium 代码库中找到相关的源代码。根据最新的铬源代码更改 https://chromium-review.googlesource.com/c/chromium/src/+/1635860 , the update interval is set to 1 day (99% cases, where the apps may update more frequently) and 30 days (1% cases where the apps may update less frequently). Previously, it was set to 3 days ( 99% cases) and 30 days ( 1% cases). Also, there is an official documentation by Google https://developers.google.com/web/fundamentals/integration/webapks#update-webapk 说:

Chrome 将定期将本地安装的清单与从网络获取的清单副本进行比较。如果将 PWA 添加到主屏幕所需的清单中的任何属性在网络副本中发生了更改,Chrome 将请求更新的 WebAPK,以反映这些新值。 有许多规则控制如何触发这些更新检查:

  • 仅在启动 WebAPK 时才会进行更新检查。直接启动 Chrome 不会触发对给定 WebAPK 的更新检查。
  • Chrome 每 1 天或每 30 天检查一次更新。大多数情况下,每天都会检查更新。在更新服务器无法提供更新的不太可能的情况下,它会切换到 30 天间隔。
  • 清除 Chrome 的数据(通过 Android 设置中的 "CLEAR ALL DATA")重置更新计时器。
  • Chrome 只会在 Web Manifest URL 没有改变的情况下更新 WebAPK。如果您将网页从引用 /manifest.json 更改为引用 /manifest2.json,WebAPK 将不再更新。 (不要这样做!)
  • 如果 WebAPK 不是 运行,
  • Chrome 只会更新 WebAPK。如果保持 运行.
  • ,则将 WebAPK 移动到后台是不够的
  • 只有Chrome(Stable/Beta/Dev/Canary)正式版创建的WebAPK才会更新。它不适用于 Chromium (org.chromium.chrome)。
  • 更新检查可能会延迟到设备插入电源并具有 WiFi 连接后。

已验证相同内容。

负责此更新的代码流程如下: