| <!DOCTYPE html> |
| <html lang="ru"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Morshen Alpha</title> |
| <link rel="manifest" href="/manifest.json"> |
| <link rel="stylesheet" href="style.css"> |
| <link rel="apple-touch-icon" href="/icon.png"> |
| <meta name="apple-mobile-web-app-capable" content="yes"> |
| <meta name="apple-mobile-web-app-status-bar-style" content="default"> |
| <link rel="icon" type="image/png" sizes="192x192" href="/icon.png"> |
|
|
| <style> |
| |
| body { |
| padding: 0; |
| font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif; |
| margin: 0; |
| overflow: hidden; |
| } |
| |
| h1 { |
| font-size: 1.2rem; |
| margin-top: 0; |
| } |
| |
| p { |
| color: rgb(107, 114, 128); |
| font-size: 0.9rem; |
| margin-bottom: 0.5rem; |
| margin-top: 0.25rem; |
| } |
| |
| .card { |
| max-width: 100%; |
| margin: 0 auto; |
| padding: 0.5rem; |
| border: 1px solid lightgray; |
| border-radius: 0.5rem; |
| } |
| |
| .card p:last-child { |
| margin-bottom: 0; |
| } |
| |
| |
| @media (min-width: 640px) { |
| body { |
| padding: 0; |
| } |
| h1 { |
| font-size: 1.6rem; |
| } |
| p { |
| font-size: 1rem; |
| } |
| .card { |
| max-width: 620px; |
| padding: 1rem; |
| border-radius: 1rem; |
| } |
| } |
| |
| |
| iframe { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| border: none; |
| margin: 0; |
| padding: 0; |
| } |
| |
| |
| #installButton, #iosInstallPrompt { |
| display: none; |
| position: fixed; |
| bottom: 20px; |
| left: 50%; |
| transform: translateX(-50%); |
| padding: 12px 20px; |
| background-color: #007bff; |
| color: white; |
| border: none; |
| border-radius: 5px; |
| cursor: pointer; |
| z-index: 1000; |
| font-size: 16px; |
| text-transform: uppercase; |
| letter-spacing: 1px; |
| box-shadow: 0 0 10px #007bff; |
| transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out; |
| } |
| |
| |
| #installButton:hover, #iosInstallPrompt:hover { |
| box-shadow: 0 0 20px #007bff, 0 0 30px #007bff; |
| transform: translateX(-50%) scale(1.05); |
| } |
| |
| |
| @keyframes pulse { |
| 0% { |
| box-shadow: 0 0 10px #007bff; |
| } |
| 50% { |
| box-shadow: 0 0 20px #007bff, 0 0 30px #007bff; |
| } |
| 100% { |
| box-shadow: 0 0 10px #007bff; |
| } |
| } |
| |
| |
| #installButton.pulse-animation, #iosInstallPrompt.pulse-animation { |
| animation: pulse 2s infinite; |
| } |
| |
| #iosInstallPrompt { |
| background-color: #28a745; |
| box-shadow: 0 0 10px #28a745; |
| } |
| |
| #iosInstallPrompt:hover { |
| box-shadow: 0 0 20px #28a745, 0 0 30px #28a745; |
| } |
| </style> |
| </head> |
| <body> |
|
|
| <iframe |
| src="https://v0-morshen-alpha-landing-xffod9.vercel.app/" |
| frameborder="0" |
| allowfullscreen></iframe> |
|
|
| <button id="installButton">Установить приложение</button> |
| <button id="iosInstallPrompt">Установить приложение </button> |
|
|
| <script> |
| let deferredPrompt; |
| const installButton = document.getElementById('installButton'); |
| const iosInstallPrompt = document.getElementById('iosInstallPrompt'); |
| |
| function isIos() { |
| return /iphone|ipad|ipod/i.test(navigator.userAgent); |
| } |
| |
| function isInStandaloneMode() { |
| return window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone; |
| } |
| |
| if (isIos() && !isInStandaloneMode()) { |
| iosInstallPrompt.style.display = 'block'; |
| installButton.style.display = 'none'; |
| iosInstallPrompt.classList.add('pulse-animation'); |
| iosInstallPrompt.addEventListener('click', () => { |
| alert("1. Нажмите кнопку 'Поделиться' (иконка внизу Safari).\n2. на экран Домой'.\n3. Подтвердите установку."); |
| }); |
| } else { |
| installButton.style.display = deferredPrompt ? 'block' : 'none'; |
| iosInstallPrompt.style.display = 'none'; |
| if (deferredPrompt) { |
| installButton.classList.add('pulse-animation'); |
| } |
| } |
| |
| window.addEventListener('beforeinstallprompt', (event) => { |
| event.preventDefault(); |
| deferredPrompt = event; |
| installButton.style.display = 'block'; |
| |
| installButton.addEventListener('click', async () => { |
| deferredPrompt.prompt(); |
| const { outcome } = await deferredPrompt.userChoice; |
| if (outcome === 'accepted') { |
| console.log('User accepted the install prompt'); |
| } else { |
| console.log('User dismissed the install prompt'); |
| } |
| deferredPrompt = null; |
| installButton.style.display = 'none'; |
| installButton.classList.remove('pulse-animation'); |
| }); |
| }); |
| |
| if ('serviceWorker' in navigator) { |
| window.addEventListener('load', () => { |
| navigator.serviceWorker.register('/service-worker.js') |
| .then((registration) => { |
| console.log('Service Worker registered:', registration); |
| }) |
| .catch((error) => { |
| console.log('Service Worker registration failed:', error); |
| }); |
| }); |
| } |
| </script> |
| </body> |
| </html> |
|
|