it seems that angular6 does not support background syncing with service worker. What are the steps required to do this without any library in an angular service?
https://developers.google.com/web/updates/2015/12/background-sync
How and where can I access WorkerGlobalScope in an angular6 application directly so that background sync can be done.:
self.addEventListener('sync', function(event) {
if (event.tag == 'myFirstSync') {
event.waitUntil(doSomeStuff());
}
});
The problem is that the angular CLI generates the servicworker file (ngsw-worker.js). Is there a way to inject / modify / extend this file? Yes, i can edit the file ngsw-worker.js by hand or with another fancy trick. Is there an official way to do this?
Yes you can use your custom script to extend the capabilities of Angular's service worker.
Just follow below steps:
- Create a js file with your custom script let's say
sw-custom.js
under src directory of your project. - Add "
importScripts('./ngsw-worker.js')
" at top ofsw-custom.js
file. - Add
sw-custom.js
file toangular.json
file under scripts section. - Now register your
sw-custom.js
file in app module instead of
ngsw-worker.js
That's it now you can write your script here as per your need.
Maybe it is not correct approach but it works.
Here is the blog for same.
来源:https://stackoverflow.com/questions/51449020/angular6-service-worker-and-background-sync