File size: 5,957 Bytes
d1900e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TeploStil PWA</title>
<link rel="manifest" href="/manifest.json">
<link rel="stylesheet" href="style.css">
<link rel="apple-touch-icon" href="/icon.png"> <!-- Для iOS -->
<meta name="apple-mobile-web-app-capable" content="yes"> <!-- Для iOS -->
<meta name="apple-mobile-web-app-status-bar-style" content="default"> <!-- Для iOS -->
<link rel="icon" type="image/png" sizes="192x192" href="/icon.png">
<style>
/* Общие стили из вашего CSS, но с адаптивными улучшениями */
body {
padding: 1rem; /* Уменьшил отступ для мобильных */
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
margin: 0; /* Убрал margin по умолчанию */
}
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) { /* Для экранов больше 640px */
body {
padding: 2rem;
}
h1 {
font-size: 1.6rem;
}
p {
font-size: 1rem;
}
.card {
max-width: 620px;
padding: 1rem;
border-radius: 1rem;
}
}
/* Стили для iframe */
iframe {
width: 100%;
height: 600px; /* Начальная высота, можно изменить */
border: none;
}
/* Кнопки установки */
#installButton, #iosInstallPrompt {
display: none;
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
padding: 10px 15px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
z-index: 1000;
font-size: 14px;
}
#iosInstallPrompt {
background-color: #28a745;
}
</style>
</head>
<body>
<div class="card">
<h1>TeploStil</h1>
<p>Ваш надежный партнер в мире тепла и стиля.</p>
<p>Мы предлагаем широкий ассортимент продукции для отопления и дизайна интерьера.</p>
</div>
<iframe
src="https://teplostil.kg/"
frameborder="0"
allowfullscreen></iframe>
<button id="installButton">Установить приложение</button>
<button id="iosInstallPrompt">Установить приложение (инструкция для iOS)</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';
iosInstallPrompt.addEventListener('click', () => {
alert("1. Нажмите кнопку 'Поделиться' (иконка внизу Safari).\n2. Выберите 'Добавить на экран Домой'.\n3. Подтвердите установку.");
});
}
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';
});
});
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>
|