Javascript, чтобы проверить, если PWA или Mobile Web

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

есть ли разница между PWA, который "установлен", и тем, который не зарегистрирован, но все еще имеет работника службы и/или кэш приложения?

2 ответов


Если это для аналитических целей, вы можете установить начальный URL в файле манифеста, чтобы включить параметр строки запроса, например:

"start_url": "./?mode=standalone"

затем в JavaScript-вы можете проверить этот параметр строки запроса.

обновление (2017-01-20):

в качестве альтернативы вы можете проверить JavaScript, используя:

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

постепенное повышение - это более широкое понятие, чем конкретная функция или метод, который включает в себя несколько технологий. Теперь прогрессивные веб-приложения основаны на работники службы что можно проверить, если браузер поддерживает его.

// Check for browser support of service worker
if ('serviceWorker' in navigator)

проект Маяк может помочь вам определить, является ли приложение прогрессивный enhanced путем выполнения оценок нескольких технологий. Взгляните на него.

enter image description here

надеюсь, это поможет, чтобы уточнить.