微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不刷新页面的情况下更新 Angular 中的旧版本 Service Worker?

如何解决如何在不刷新页面的情况下更新 Angular 中的旧版本 Service Worker?

我有一个 Angular 应用程序,每当发布新版本时,我都会通过该应用程序提示用户更新应用程序。但是,现在我需要在没有用户输入的情况下强制更新。为了更新,我一直在使用 Angular Service Worker 和 SwUpdate 类。

我的问题是,当我发布带有据称会强制自动更新的代码的新版本时,使用旧版本应用程序的用户会一直看到要求他们更新的提示。如果他们确实更新了应用程序可以正常工作,但如果他们不更新,旧版本将不再与新实现的功能兼容。

这是我的新版本自动更新的代码

 public checkForUpdates() {
        // console.log("checkForUpdates");
        // console.log(this.updates.isEnabled);
        if (this.updates.isEnabled) {
            this.updates.available.subscribe((event) => {
                console.log("current version is",event.current);
                console.log("available version is",event.available);

                this.updates.activateUpdate().then(() => document.location.reload());

                //document.location.reload();
                //this.promptUser(event);
            });
            this.updates.activated.subscribe((event) => {
                console.log("old version was",event.prevIoUs);
                console.log("new version is",event.current);
            });
        }
    }

如何让现有的旧版本用户在没有他们输入的情况下进行更新?似乎如果他们不刷新或手动更新应用程序,他们将无法获得新版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。