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