如何在不刷新页面的情况下更新 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 (将#修改为@)