web-dev-qa-db-ja.com

Angular6 ServiceWorkerとバックグラウンド同期

angular6はServiceWorkerとのバックグラウンド同期をサポートしていないようです。 angularサービスでライブラリなしでこれを行うために必要な手順は何ですか?

https://developers.google.com/web/updates/2015/12/background-sync

angular6アプリケーションのWorkerGlobalScopeに直接アクセスする方法と場所バックグラウンド同期を実行できます。:

self.addEventListener('sync', function(event) {
  if (event.tag == 'myFirstSync') {
    event.waitUntil(doSomeStuff());
  }
});

問題は、angular CLIがservicworkerファイル(ngsw-worker.js)を生成することです。方法はありますか? toinject/modify/ extendこのファイル?はい、ファイルngsw-worker.jsを手動または別の凝ったトリックで編集できます。これを行う公式の方法はありますか?

9
yonexbat

はい、カスタムスクリプトを使用して、Angularのサービスワーカーの機能を拡張できます。

以下の手順に従ってください。

  1. プロジェクトのsrcディレクトリの下に_sw-custom.js_としましょう。カスタムスクリプトを使用してjsファイルを作成します。
  2. _sw-custom.js_ファイルの先頭に「importScripts('./ngsw-worker.js')」を追加します。
  3. スクリプトセクションの下の_sw-custom.js_ファイルに_angular.json_ファイルを追加します。
  4. _sw-custom.js_ファイルをappモジュールではなくappモジュールに登録します

ngsw-worker.js

これで、必要に応じてここにスクリプトを記述できます。

多分それは正しいアプローチではありませんが、それは機能します。

これが ブログ です。

4
Piyush