| | const divResult = document.getElementById('result'); |
---|
| | const divInstall = document.getElementById('installContainer'); |
---|
| | const butInstall = document.getElementById('butInstall'); |
---|
| | |
---|
| | window.addEventListener('beforeinstallprompt', (event) => { |
---|
| | console.log('👍', 'beforeinstallprompt', event); |
---|
| | // Stash the event so it can be triggered later. |
---|
| | window.deferredPrompt = event; |
---|
| | // Remove the 'hidden' class from the install button container |
---|
| | butInstall.removeAttribute('disabled'); |
---|
| | }); |
---|
| | |
---|
| | butInstall.addEventListener('click', () => { |
---|
| | console.log('👍', 'butInstall-clicked'); |
---|
| | const promptEvent = window.deferredPrompt |
---|
| | if (!promptEvent) { |
---|
| | // The deferred prompt isn't available. |
---|
| | return; |
---|
| | } |
---|
| | // Show the install prompt. |
---|
| | promptEvent.prompt(); |
---|
| | // Log the result |
---|
| | promptEvent.userChoice.then((result) => { |
---|
| | console.log('👍', 'userChoice', result); |
---|
| | // Reset the deferred prompt variable, since |
---|
| | // prompt() can only be called once. |
---|
| | window.deferredPrompt = null; |
---|
| | // Hide the install button. |
---|
| | butInstall.setAttribute('disabled', true); |
---|
| | }); |
---|
| | }); |
---|
| | |
---|
| | window.addEventListener('appinstalled', (event) => { |
---|
| | console.log('👍', 'appinstalled', event); |
---|
| | }); |
---|
| | |
---|
| | /* Only register a service worker if it's supported */ |
---|
| | if ('serviceWorker' in navigator) { |
---|
| | console.log('👍', 'navigator.serviceWorker is supported'); |
---|
| | navigator.serviceWorker.register('https://rossmarks.uk/bank/service-worker.js'); |
---|
| | } |
---|
| | |
---|
| | /** |
---|
| | * Warn the page must be served over HTTPS |
---|
| | * The `beforeinstallprompt` event won't fire if the page is served over HTTP. |
---|
| | * Installability requires a service worker with a fetch event handler, and |
---|
| | * if the page isn't served over HTTPS, the service worker won't load. |
---|
| | */ |
---|
| | if (window.location.protocol === 'http:') { |
---|
| | const requireHTTPS = document.getElementById('requireHTTPS'); |
---|
| | const link = requireHTTPS.querySelector('a'); |
---|
| | link.href = window.location.href.replace('http://', 'https://'); |
---|
| | requireHTTPS.classList.remove('hidden'); |
---|
| | } |
---|
| | |