Android智能横幅 - 本机应用安装的清单抱怨失踪的服务工作者

时间:2017-10-12 16:23:24

标签: android web mobile android-manifest

我已经阅读了Google的文档,搜索过了Stack Overflow,但是没有找到任何问题的答案。

我需要一个Android智能横幅来为网站安装原生应用,因此(根据Google的说明)创建了以下清单(出于隐私原因而被删除的详细信息):

{
  "short_name": "ShortName",
  "name": "Longer App Name",
  "start_url": ".",
  "display": "standalone",
  "icons": [
    {
         "src": "icon.png",
         "type": "image/png",
         "sizes": "144x144"
     }
  ],
  "prefer_related_applications": true,
  "related_applications": [
    {
         "platform": "play",
         "id": "com.app.name"
    }
  ]
}

由于这是一个原生应用,因此不需要任何服务工作者according to Google's guidelines。但是,当我打开网站并尝试添加到主屏幕(通过开发人员控制台)时,我不断收到以下错误:

  

无法安装站点:未检测到匹配的服务工作者。您   可能需要重新加载页面,或检查服务工作者的   当前页面还控制清单中的起始URL。

你知道为什么会这样吗?看起来这不是本机应用程序安装,但为什么会这样呢?

我注意到了一些可疑的事情,就像它抱怨我没有start_url和显示一样,即使指南没有提到原生应用程序的必要。

你能告诉我我做错了吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

阅读google documentation我只能看到我将放在这里的一些差异,以便您查看:

  • Png图标大小应为192x192
  • 我会删除“start_url”和“display”
  • 在两周的两天内,用户两次访问。 (这也很重要)

答案 1 :(得分:0)

Service Worker 只是针对 PWA 的警告。对于本机应用程序,这可以忽略。

docs 中缺少一个标准:需要多种不同的图标大小。这些尺寸为 36x3648x4872x7296x96144x144192x192

这是一个例子:

{
  "name": "App Name",
  "short_name": "App Name Install Banner Sample",
  "icons": [
    {
      "src": "icon-0-75x.png",
      "sizes": "36x36",
      "type": "image/png"
    },
    {
      "src": "icon-1x.png",
      "sizes": "48x48",
      "type": "image/png"
    },
    {
      "src": "icon-1-5x.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "icon-2x.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "icon-3x.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "icon-4x.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ],
  "prefer_related_applications": true,
  "related_applications": [
    {
      "platform": "play",
      "id": "com.google.samples.apps.iosched",
      "url": "https://play.google.com/store/apps/details?id=com.google.samples.apps.iosched"
    }
  ],
  "start_url": ".",
  "display": "standalone"
}

提醒:

  1. 在 chrome chrome://flags/#bypass-app-banner-engagement-checks 中启用此标志
  2. 在您的 Android 设备或模拟器上登录 Google Play(确保模拟器有 Play 商店)
  3. 该应用不应已安装在设备上
  4. 按照requirements listed at the top here
  5. 检查浏览器中的源选项卡以查看清单是否正确提供,并记得检查控制台是否有任何错误(警告没有问题)