Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 渐进式web应用程序何时更新其清单文件的更改?_Google Chrome_Manifest_Progressive Web Apps - Fatal编程技术网

Google chrome 渐进式web应用程序何时更新其清单文件的更改?

Google chrome 渐进式web应用程序何时更新其清单文件的更改?,google-chrome,manifest,progressive-web-apps,Google Chrome,Manifest,Progressive Web Apps,我有一个渐进式web应用程序,我希望对其清单文件进行更改,如更改其开始url、范围、图标、名称和短名称。我想知道,在对其清单进行更改后,渐进式web应用程序的更新何时发生?我尝试了以下方法来强制更新Chrome浏览器上的web应用程序: 启动WebAPK 关闭WebAPK 修改Web清单 将Android系统时间提前3天。 在我的设备上:设置>系统>日期和时间>设置日期 启动WebAPK,等待几秒钟 运行adb shell dumpsys jobscheduler | JOB.*91.*org

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

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

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

我做了深入的研究,想知道在清单文件的更改上更新web应用程序的标准是什么,并且我能够在Chrome代码库中找到具有更新逻辑的相关源代码。根据最新的chromium源代码更改,更新间隔设置为1天(99%的情况下,应用程序可能更新得更频繁)和30天(1%的情况下,应用程序可能更新得不太频繁)。以前,它被设置为3天(99%病例)和30天(1%病例)。此外,谷歌有一份官方文件称:

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

  • 更新检查仅在启动WebAPK时发生。直接启动Chrome不会触发给定WebAPK的更新检查
  • Chrome每1天或每30天检查一次更新。大多数情况下,每天都会检查更新。在更新服务器无法提供更新的情况下,它会切换到30天间隔
  • 清除Chrome的数据(通过Android设置中的“清除所有数据”)会重置更新计时器
  • 如果Web清单URL没有更改,Chrome将只更新WebAPK。如果将网页从reference/manifest.json更改为reference/manifest2.json,WebAPK将不再更新。(不要这样做!)
  • Chrome仅在WebAPK未运行时更新WebAPK。如果WebAPK继续运行,将其移动到后台是不够的
  • 只有官方版本的Chrome(Stable/Beta/Dev/Canary)创建的WebAPK才会更新。它不适用于铬(org.Chromium.chrome)
  • 更新检查可能会延迟,直到设备插入并具有WiFi连接
已经验证了相同的

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

  • 无论何时,只要对同一来源的清单文件进行更新,WebApkUpdateTask都会在后台服务中安排更新任务,其链接如下所示:
  • 此更新任务由WebApkUpdateManager管理,其链接如下:
  • 更新间隔检查由WebappDataStorage完成,其链接如下:android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java()

在谷歌文档中发现更新间隔为1天,但我无法验证。如果有人能帮忙。谷歌文档的链接如下: