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

时间:2019-12-07 01:01:20

标签: android manifest progressive-web-apps

我将start_url设置为/ mysite,我将清单更新为start_url设置为/ mysite?tracking = ga,以便可以从应用程序查看安装。

无论如何,对于我的一生,我都无法弄清楚如何强制下载新应用程序,但该应用程序仍指向旧的start_url。我知道如何更新服务工作者,从而更新缓存API或任何其他缓存,但是没有可靠的方法来强制刷新manifest.json,从而强制重新下载apk。即使当我删除apk并通过“添加到主屏幕”下载新应用时,它也指向旧的`start_url。我的理解是,每个清单都需要一个新的APK。

*更新:是否进行了多次测试以更新清单theme_color,并且查看更改的唯一方法是卸载应用程序并完全清除Chrome缓存和数据,然后通过“添加到主屏幕”提示重新安装。

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

更改<link rel="manifest" href="manifest.json">

收件人:<link rel="manifest" href="manifest.json?v=2">

在您网站页面的头文件中。

这将替换新清单文件的缓存。

答案 2 :(得分:0)

我已经进行了一些测试,其中包括(1)卸载当前的PWA,(2)清除浏览器数据和缓存,以及(3)重新安装似乎已强制刷新的PWA。但是,当然,这只是出于测试目的-我想您将无法指导所有应用程序用户使用相同的软件。

除了通过文档链接提供的答案外,我还要强调一下 在Chrome 75及更低版本中,WebAPK更新在3 day intervals上进行。在Chrome 76(2019年7月)及更高版本上,更新间隔缩短为1 day。计时器到期后,应用程序将检查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;
}

答案 3 :(得分:-1)

清除Android浏览器缓存有助于解决我的情况。清除应用程序缓存还不够。