Ручной сервисный работник в угловой - PullRequest
0 голосов
/ 09 мая 2019

Можно ли добавить созданный вручную Service Worker в Angular вместо конфигурации JSON?

Я хотел бы реализовать свой собственный код

1 Ответ

0 голосов
/ 10 мая 2019

Вы можете создать свой файл sw.js следующим образом:

var cacheName = "your cache name";

self.addEventListener("install", event => {
  event.waitUntil(
    caches
    .open(cacheName)
    .then(cache =>
      cache.addAll([

      ])
    ).then(() => self.skipWaiting())
  );
});

//Removing outdated caches
self.addEventListener("activate", function (event) {
  event.waitUntil(
    caches.keys().then(function (cacheNames) {
      return Promise.all(
        cacheNames
        .filter(function (cacheName) {
          return true;
        })
        .map(function (cacheName) {
          return caches.delete(cacheName);
        })
      );
    }).then(() => self.clients.claim())
  );
});

// Cache any new resources as they are fetched
self.addEventListener("fetch", function (event) {

});

, затем в вашем app.component.ts добавить этот код

 public ngOnInit() {
     if ("serviceWorker" in navigator) {
      navigator.serviceWorker
        .register("./sw.js")
        .then(registration => {
          // Registration was successful
          console.log(
            "ServiceWorker registration successful with scope: ",
            registration.scope
          );
        })
        .catch(err => {
          // registration failed :(
          console.log("ServiceWorker registration failed: ", err);
        });
    }

Пожалуйста, дайте мне знать, если у вас естьлюбой вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...