2017-09-04 78 views
0

你好我得到這個錯誤:安裝的網絡應用在Chrome瀏覽器的Web應用程序清單爲Android不工作

Site cannot be installed: no matching service worker detected. You may need to reload the page, or check that the service worker for the current page also controls the start URL from the manifest 

這是我的manifest.json:

{ 
    "name": "SIMIC project", 
    "short_name": "simic", 
    "icons": [{ 
    "src": "images/simic-bn.png", 
    "type": "image/png", 
    "sizes": "32x32" 
    }, 
    { 
    "src": "images/simic-bn.png", 
    "type": "image/png", 
    "sizes": "144x144" 
    }], 
    "start_url": "/wta/", 
    "display": "standalone", 
    "background_color": "#ffffff", 
    "theme_color": "#1e88e5" 
} 

這是我的網址: 「MYDOMAIN:8889/WTA /」,這是我的代碼結構:

-mydomain

--- WTA

------ CSS/

------字體/

------圖像/

------ JS/

------ index.html的

------ manifest.json的

我在想什麼? THX

回答

3

爲了讓您的web應用程序是安裝/添加到主屏幕,則需要滿足以下要求:

  1. 有一個short_name一個Web應用程序清單文件,一個name,一iconstart_url(你已經有了)

  2. 服務工作者

  3. 必須通過HTTPS提供

當前您有Web應用程序清單文件,但您需要服務人員。服務工作人員基本上是截取網絡請求的JavaScript文件,緩存你的資產,可以發送推送通知等

你可以像這樣創建這個js文件並註冊服務人員:

if ('serviceWorker' in navigator) { 
    // register the service worker 
    navigator.serviceWorker.register('service-worker.js') 
     .then(function(reg){ 
      console.log("service worker registered"); 
     }).catch(function(err) { 
      console.log("error: ", err) 
     }); 
} 

注這應該在根文件夾中,以便它可以在整個站點上運行。

+0

thaks爲您的答案!我明白你說的是什麼,但是我有什麼要寫在我的服務人員身上?你寫的代碼只是一個指向服務人員的js文件,不是嗎? 「service-worker.js」包含什麼? –

+0

我跟着這個鏈接:https://codelabs.developers.google.com/codelabs/add-to-home-screen/#5 ....我添加了這個:「self.addEventListener('fetch',function(event ){ \t \t });「在我的服務工作文件中。它工作正常! –

0

您還需要服務人員腳本來控制您的資產,離線插件應該是一個不錯的選擇!

相關問題