2016-07-11 8 views
1

私は現在、angularjsプロジェクトでまずservice-workerをオフラインとして使用しようとしています。私のプロジェクトは、従業員が次のようにサービスワーカーにこれらの行を置くことによって足場に足をかける。なぜservice-workerのself.addEventListenerがangularjsで動作しないのですか

self.addEventListener('install', function(e) { 
    e.waitUntil(
    caches.open(cacheName).then(function(cache) { 
     console.log('[ServiceWorker] Caching App Shell'); 
     return cache.addAll(filesToCache); 
    }) 
); 
}); 

と呼ばれ、私はService Worker Registeredメッセージが、問題を持っている私のindex.jade

script. 
    if('serviceWorker' in navigator) { 
     navigator.serviceWorker 
      .register('app/service-worker.js') 
      .then(function() { 
       console.log('Service Worker Registered'); 
      }) 
      .catch(function(err) { 
       console.log('ServiceWorker registration failed: ', err); 
      }); 
    } 

に従うよう、サービス労働者を登録するには、アプリが実行されている時はいつでも、サービス労働者でaddEventListenerのすべての並べ替えが発射されていないです。

self.addEventListener('install', function(e) 

self.addEventListener('activate', function(event) { 

self.addEventListener('fetch', function(e) { 

私がコードに逃したのは解決してください。

答えて

0

あなたが登録するサービスワーカーはapp/service-worker.jsにあります。つまり、サービスワーカーのscopeの有効数字はapp/です。 app/の下にあるページのみがこのサービスワーカーによって制御されます。

登録するサービスワーカーファイルが、必要な最大スコープに対応するパスから提供されるようにする必要があります。 service-worker.jsファイルを1つのパスレベルに移動してapp/service-worker.jsの代わりにservice-worker.jsとして登録すると、有効範囲に現在のページとサブパスから配信されるページが含まれます。

+0

https://stackoverflow.com/questions/44646005/using-service-worker-in-angularjs –

関連する問題