Chrome for Android中使用Web App Manifest的可安装Web应用程序无法运行

时间:2017-09-04 15:53:42

标签: android json google-chrome progressive-web-apps

您好我收到此错误:

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

2 个答案:

答案 0 :(得分:4)

为了使您的网络应用程序可以安装/添加到主屏幕,您需要满足以下要求:

  1. 有一个网络应用清单文件,其中包含short_namenameiconstart_url(您已有)

  2. 服务工作者

  3. 必须通过HTTPS提供

  4. 目前您拥有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)
            });
    }
    

    请注意,这应该位于根文件夹中,以便它适用于整个网站。

答案 1 :(得分:0)

您还需要一个服务工作者脚本来控制您的资产,离线插件应该是一个很好的选择!