android 强制刷新manifest.json以下载新PWA

jhkqcmku  于 2023-02-10  发布在  Android
关注(0)|答案(5)|浏览(321)

我将start_url设置为/mysite。现在我已更新清单,将start_url设置为/mysite?tracking=ga,以便从应用查看安装。
不管怎样,我这辈子都不知道怎么强制下载新的应用程序,应用程序仍然指向旧的start_url。我知道如何更新服务工作器,从而缓存API或任何其他缓存,但没有可靠的方法来强制刷新manifest.json,从而强制下载新的apk。即使我删除apk并通过“添加到主屏幕”它指向旧的'start_url.我的理解是每个清单需要一个新的apk.

  • 更新:做了多个测试,我更新了清单theme_color,唯一能看到变化的方法是卸载应用程序并完全清除Chrome缓存和数据,然后通过“添加到主屏幕”提示重新安装。
wpcxdonn

wpcxdonn1#

参考此link
引用链接,

桌面Chrome更新

当PWA启动或在浏览器标签页中打开时,Chrome会确定上次检查本地清单更改的时间。如果自浏览器上次启动后未检查清单,或在过去24小时内未检查清单,Chrome将发出网络请求以获取清单,然后将其与本地副本进行比较。
如果清单中的某些属性发生了更改(请参阅下面的列表),Chrome会将新清单排队,并在所有窗口关闭后进行安装。安装完成后,新清单中的所有字段(名称、short_name、start_url和图标除外)都会更新。
哪些属性将触发更新?

  • display
  • scope
  • shortcuts
  • theme_color
  • file_handlers

更新Android版Chrome浏览器

当PWA启动时,Chrome会确定上次检查本地清单是否有更改的时间。如果清单在过去24小时内没有被检查,Chrome会安排一个网络请求来获取清单,然后将其与本地副本进行比较。
如果清单中的选定属性已更改(见下表),Chrome会将新清单排队,在PWA的所有窗口关闭、设备插入并连接到WiFi后,Chrome会向服务器请求更新的WebAPK。更新后,将使用新清单中的所有字段。
哪些属性将触发更新?

  • background_color
  • display
  • orientation
  • scope
  • shortcuts
  • start_url
  • x1米11米1x
  • web_share_target

在大多数情况下,更改应在清单更新后PWA启动的一两天内反映出来。

a2mppw5e

a2mppw5e2#

快速简单

首先在网站上找到manifest.json文件,例如domain.com/manifest.json。然后进行硬刷新(在PC上按ctrlrefresh按钮)。
我不能100%确定它是否能在已经安装的WebApp上工作,但理论上它应该能在所有设备上已经安装的WebApp上工作。

htzpubme

htzpubme3#

我已经做了一些测试,包括(1)卸载当前的PWA,(2)清除浏览器数据和缓存,(3)重新安装PWA,这似乎已经强迫刷新。然而,当然这只是为了测试的目的-我想你不可能指示你的所有应用程序用户都这样做。
除了通过文档链接给出的答案外,我想强调的是,在Chrome 75及更早版本上,WebAPK更新间隔为3天。在Chrome 76(2019年7月)及更高版本上,更新间隔缩短为1天。当计时器到期时,应用程序将检查manifest是否需要更新-这将在应用程序启动时完成。
以下是更新的原因:

enum UpdateReason {
    NONE = 1;
    OLD_SHELL_APK = 2;
    PRIMARY_ICON_HASH_DIFFERS = 3;
    SCOPE_DIFFERS = 5;
    START_URL_DIFFERS = 6; // OP's scenario
    SHORT_NAME_DIFFERS = 7;
    NAME_DIFFERS = 8;
    BACKGROUND_COLOR_DIFFERS = 9;
    THEME_COLOR_DIFFERS = 10;
    ORIENTATION_DIFFERS = 11;
    DISPLAY_MODE_DIFFERS = 12;
    WEB_SHARE_TARGET_DIFFERS = 13;
    MANUALLY_TRIGGERED = 14;
    PRIMARY_ICON_MASKABLE_DIFFERS = 15;
    SHORTCUTS_DIFFER = 16;
    SPLASH_ICON_HASH_DIFFERS = 17;

    reserved 4;
}
9jyewag0

9jyewag04#

Ctrl+F5硬刷新清单文件,然后清除应用程序存储对我来说确实起到了作用。

omvjsjqw

omvjsjqw5#

变更<link rel="manifest" href="manifest.json">
收件人:<link rel="manifest" href="manifest.json?v=2">
在你网站页面的头文件中。
这将替换新清单文件的缓存。

相关问题