如何记录PWA是否被视为网站或应用程序

时间:2018-07-03 16:37:06

标签: logging progressive-web-apps pwa

我正在开发PWA(渐进式Web应用程序),并且希望能够跟踪某人是只是将其作为网站查看还是将其安装并作为应用程序查看。

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

Windows 10提供了从其应用商店中安装PWA的功能。到那时,您也许可以收集一些分析数据。不幸的是,这将是一个有限的安装基础(与仅从浏览器进行安装相比)。

1 个答案:

答案 0 :(得分:6)

选项1:

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

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

选项2:

或者,您可以在JS中使用display-mode detection

非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');
}