防止Angular PWA自动更新

时间:2019-01-31 19:21:49

标签: angular progressive-web-apps auto-update angular-service-worker

Angular-PWA对于我最近的启动项目可能是一个不错的选择。但是必须禁用其漂亮功能之一!

该应用将具有敏感数据,并且必须在长时间内保持稳定(直到用户明确选择 Update 为止)。因此,它不能自动更新。

The official documentation of Angular's Service-worker不包含有关此策略的任何想法。

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

Angular的Service-worker总共尝试检查3个地方。首先,在明确请求(OK)和 另外两个(check-updates-on-navigationinit post-load (update))会自动 ,并且必须将其禁用。参见以下补丁(针对@angular/service-worker v7.1.0):

--- "node_modules/@angular/service-worker/ngsw-worker.js"   1985-10-26 11:45:00.000000000 +0330
+++ "node_modules/@angular/service-worker/ngsw-worker.js"   2019-02-13 23:28:10.828903500 +0330
@@ -1990 +1990 @@
-                    const action = (() => __awaiter$5(this, void 0, void 0, function* () { yield this.checkForUpdate(); }))();
+                    const action = (() => __awaiter$5(this, void 0, void 0, function* () { console.log('WILL_UPDATE_ON_EXPLICIT_MESSAGE'); yield this.checkForUpdate(); }))();
@@ -2101 +2101 @@
-                        yield this.checkForUpdate();
+                        console.log('DISCARDED: check-updates-on-navigation'); //yield this.checkForUpdate();
@@ -2171 +2171 @@
-                        yield this.checkForUpdate();
+                        console.log('DISCARDED: init post-load (update)'); //yield this.checkForUpdate();

但是我不使用这种冒险的方式。