Как войти, если PWA рассматривается как веб-сайт или приложение - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над PWA (прогрессивным веб-приложением), и я хотел бы иметь возможность отслеживать, просматривает ли кто-то его просто как веб-сайт или установил ли он и просматривает ли он как приложение.

Есть ли способ сделать это? Я не могу придумать никаких способов, так как они оба используют одни и те же файлы (оба используют manifest.json и manifest.json направляют оба к одному index.html).

Windows 10 позволяет устанавливать PWA из своего магазина приложений. В этот момент вы можете собрать аналитику. К сожалению, это будет ограниченная база установки (по сравнению с простой установкой из браузера).

1 Ответ

0 голосов
/ 03 июля 2018

Вариант 1:

Начальный URL Manifest.json используется только тогда, когда вы обращаетесь к нему после добавления на домашний экран. Вы можете иметь свой начальный URL как "https://example.com/myapp?isPWA=true"

На домашней странице есть логика для чтения параметра запроса и флага, а также логика, основанная на этом. В режиме браузера этот флаг не будет присутствовать, и поэтому логика должна считаться ложной в этом случае. Это общее решение для всех платформ.

Вариант 2:

В качестве альтернативы вы можете использовать обнаружение в режиме отображения в JS.

Non Safari (в новых версиях может появиться совместимость с Safari)

CSS Solution

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