Для этого в странице должны быть прописаны следующие элементы
В Head секции:
<link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials">
Перед закрывающим /body должны быть:
<input type="hidden" class="as-enablePWANotifications" value="1">
<script>
// Check compatibility for the browser we're running this in
if ("serviceWorker" in navigator) {
if (navigator.serviceWorker.controller) {
console.log("[PWA Builder] active service worker found, no need to register");
} else {
// Register the service worker
console.log("Register the service worker...")
navigator.serviceWorker
.register("/pwabuilder-sw.js", {
scope: "./"
})
.then(function (reg) {
console.log("[PWA Builder] Service worker has been registered for scope: " + reg.scope);
});
}
}
// may be let deferredPrompt;
let deferredPrompt = null;
// вызывается только если не установлено приложение в браузере! См. chrome://apps
// $(window).on('beforeinstallprompt', function (e) {
window.addEventListener('beforeinstallprompt', function (e) {
console.log("beforeinstallprompt")
// return; Иногда влияло на Autocomplete
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
console.log("window.deferredPrompt", e);
return false;
});
</script>