-
Notifications
You must be signed in to change notification settings - Fork 0
/
ios.js
50 lines (46 loc) · 3.74 KB
/
ios.js
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
document.addEventListener('DOMContentLoaded', () => {
const isStandalone = window.matchMedia('(display-mode: standalone)').matches;
const isIOS = /iPhone|iPad|iPod/.test(navigator.userAgent) && !navigator.standalone;
const isAndroid = /Android/.test(navigator.userAgent);
// Показ баннера для iOS
if (isIOS && !isStandalone) {
const banner = `<div style="position:fixed;bottom:0;width:100%;background-color:#f8f8f8;border-top:1px solid #ddd;padding:10px;text-align:center;">
<span>Установи приложение на свой iPhone/iPad: нажми <img src="/ios-share.svg" style="height:20px;vertical-align:middle;" alt="Поделиться">, а затем <img src="/ios-add.svg" style="height:20px;vertical-align:middle;" alt="Добавить"> На экран "Домой"</span>
<button style="float:center;" onclick="this.parentElement.style.display='none'">Закрыть уведомление об установке приложения</button> </br>
</div>`;
document.body.insertAdjacentHTML('beforeend', banner);
}
// Показ баннера для Android
if (isAndroid && !isStandalone) {
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
deferredPrompt = e;
const banner = `<div style="position:fixed;bottom:0;width:100%;background-color:#f8f8f8;border-top:1px solid #ddd;padding:10px;text-align:center;">
<span>Добавить приложение на домашний экран для быстрого доступа</span>
<button onclick="deferredPrompt.prompt();deferredPrompt.userChoice.then(choiceResult => { if (choiceResult.outcome === 'accepted') console.log('User accepted the A2HS prompt'); deferredPrompt = null; });">Установить</button>
<button style="float:right;" onclick="this.parentElement.style.display='none'">Закрыть</button>
</div>`;
document.body.insertAdjacentHTML('beforeend', banner);
});
}
// Показ баннера для ПК
if (!isStandalone && !isIOS && !isAndroid) {
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
deferredPrompt = e;
const banner = `<div style="position:fixed;bottom:0;width:100%;background-color:#f8f8f8;border-top:1px solid #ddd;padding:10px;text-align:center;">
<span>Добавить приложение на домашний экран для быстрого доступа</span>
<button onclick="deferredPrompt.prompt();deferredPrompt.userChoice.then(choiceResult => { if (choiceResult.outcome === 'accepted') console.log('User accepted the A2HS prompt'); deferredPrompt = null; });">Установить</button>
<button style="float:right;" onclick="this.parentElement.style.display='none'">Закрыть</button>
</div>`;
document.body.insertAdjacentHTML('beforeend', banner);
});
}
});
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('./index.js').then(reg => console.log('ServiceWorker registered:', reg.scope)).catch(err => console.log('ServiceWorker registration failed:', err));
});
}