7

我正在开发 PWA(渐进式网络应用程序),我希望能够跟踪是否有人只是将其视为网站,或者他们是否安装了它并将其视为应用程序。

有没有办法做到这一点?我想不出任何办法,因为它们都使用相同的文件(都使用 manifest.json 和 manifest.json 都指向同一个 index.html)。

Windows 10 允许从其应用商店安装 PWA。那时,您可能能够收集一些分析。不幸的是,这将是一个有限的安装基础(与仅从浏览器安装相比)。

4

1 回答 1

7

选项1 :

Manifest.json 的起始 url 仅在添加到主屏幕后访问它时使用。您可以将起始网址设为“ https://example.com/myapp ?isPWA=true

在主页中,具有读取查询参数和标志的逻辑,并基于此执行逻辑。在浏览器模式下,此标志将不存在,因此在这种情况下逻辑应考虑为 false。这是适用于所有平台的通用解决方案。

选项 2:

作为替代方案,您可以在 JS中使用显示模式检测。

非 Safari(Safari 兼容性可能会出现在新版本中)

CSS 解决方案

@media all and (display-mode: standalone) {
  body {
    background-color: yellow;
  }
}

JS解决方案

if (window.matchMedia('(display-mode: standalone)').matches) {
  console.log('display-mode is standalone');
}

Safari JS 解决方案

if (window.navigator.standalone === true) {
  console.log('display-mode is standalone');
}
于 2018-07-03T17:42:15.553 回答