2017-02-22 50 views
1

我最近通過Google節點模塊「sw-precache」生成的服務工作人員(我使用了demo中的Gulp任務)製作了我的第一個漸進式網絡應用。一切工作正常,我可以通過網絡應用程序進行導航,當我使用移動設備上的Chrome或使用Chrome創建的使用「添加到主屏幕」選項(我的漸進網絡應用程序)的圖標時。漸進網絡應用離線刷新不起作用

我只有一個奇怪的問題:如果我脫機並且在Chrome中刷新頁面,它仍然有效,但如果我使用pwa執行相同操作,則會顯示恐龍和「您處於脫機狀態」消息通過滾動)。但是,如果我瀏覽應用程序而不刷新頁面,則不需要恐龍。

這是一個已知的問題嗎?

+1

你不介意在https://github.com/GoogleChrome/sw-precache/issues提交的問題更多的詳細信息,包括已部署的Web應用程序的URL,以及具體的配置你」重新傳遞給'sw-precache'?我會在那裏跟進。謝謝! –

+1

@JeffPosnick非常感謝!鏈接如下:https://github.com/GoogleChrome/sw-precache/issues/252 – pmrotule

+1

我投票結束這個問題作爲題外話題,因爲它適用於它適用於特定圖書館的問題跟蹤器中。 –

回答

0

從外觀上看,你只能使用sw-precache。服務工作者似乎沒有事件處理程序來監聽如果頁面沒有被緩存,該怎麼做。您可以使用sw-toolbox來處理將來訪問的緩存並處理脫機頁面。繼承人的代碼

self.toolbox.router.get('/(.*)', function (req, vals, opts) { 
    return self.toolbox.networkFirst(req, vals, opts) 
     .catch(function (error) { 
      if (req.method === 'GET' && req.headers.get('accept').includes('text/html')) { 
       return self.toolbox.cacheOnly(new Request(OFFLINE_URL), vals, opts); 
      } 
      throw error; 
     }); 
    });