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

问题描述 投票:1回答:1

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

  • 启动WebAPK
  • 关闭WebAPK
  • 修改Web清单
  • 将Android的系统时间提前3天。在我的设备上:设置>系统>日期和时间>设置日期
  • 启动WebAPK,请等待几秒钟
  • 运行adb shell dumpsys jobscheduler | JOB.*91.*org.chromium.components.background_task_scheduler.BackgroundTaskJobService
  • 检查输出是否为空
  • 关闭WebAPK
  • 运行adb shell cmd jobscheduler run -f com.android.chrome 91强制更新

但是,我想知道在更改清单文件后更新Web应用程序的真正标准是什么?请有人可以附上支持该代码段的代码段,该代码段可能特定于Chrome的实现方式?

google-chrome manifest progressive-web-apps
1个回答
0
投票

我进行了深入研究,以了解在清单文件更改时更新Web应用程序的确切标准是什么,我能够在带有更新逻辑的Chrome代码库中找到相关的源代码。根据最新的铬源代码更改https://chromium-review.googlesource.com/c/chromium/src/+/1635860,更新间隔设置为1天(99%,应用可能会更频繁地更新)和30天(1%,应用可能会更新的情况更新频率较低)。以前,将其设置为3天(99%的情况)和30天(1%的情况)。此外,还有Google https://developers.google.com/web/fundamentals/integration/webapks#update-webapk提供的官方文档,内容为:

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

  • 仅在启动WebAPK时进行更新检查。直接启动Chrome不会触发给定WebAPK的更新检查。
  • Chrome每1天或30天检查一次更新。每天大部分时间都会检查更新。在更新服务器无法提供更新的极少数情况下,它将切换到30天间隔。
  • 清除Chrome的数据(通过Android设置中的“清除所有数据”来重置更新计时器。
  • [Chrome仅在Web清单URL不变的情况下才会更新WebAPK。如果将网页从引用/manifest.json更改为引用/manifest2.json,则WebAPK将不再更新。 (不要这样做!)
  • [Chrome仅在WebAPK未运行时才会更新WebAPK。如果WebAPK继续运行,将其移动到后台是不够的。
  • 仅更新由正式版Chrome(稳定版/测试版/开发版/金丝雀)创建的WebAPK。它不适用于Chromium(org.chromium.chrome)。
  • 更新检查可能会延迟到插入设备并建立WiFi连接之后。

已验证相同。

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

© www.soinside.com 2019 - 2024. All rights reserved.