vers. 2.6.0
This commit is contained in:
@@ -1043,11 +1043,75 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
if (homeNav) homeNav.style.display = 'block';
|
||||
};
|
||||
|
||||
/**
|
||||
* Gestione dello stato Offline
|
||||
*/
|
||||
function initOfflineDetection() {
|
||||
let offlineOverlay = document.getElementById('offlineOverlay');
|
||||
if (!offlineOverlay) {
|
||||
offlineOverlay = document.createElement('div');
|
||||
offlineOverlay.id = 'offlineOverlay';
|
||||
offlineOverlay.className = 'offline-overlay';
|
||||
offlineOverlay.innerHTML = `
|
||||
<div class="offline-content">
|
||||
<span class="material-icons offline-icon">wifi_off</span>
|
||||
<h2 class="offline-title">Nessuna Connessione</h2>
|
||||
<p class="offline-desc">Sembra che tu sia offline. Controlla la tua connessione internet per continuare ad ascoltare RPIGroup Play.</p>
|
||||
<button class="offline-btn" id="offlineRetryBtn">
|
||||
<span class="material-icons">refresh</span> Riprova
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(offlineOverlay);
|
||||
|
||||
const retryBtn = document.getElementById('offlineRetryBtn');
|
||||
if (retryBtn) {
|
||||
retryBtn.addEventListener('click', function() {
|
||||
retryBtn.disabled = true;
|
||||
retryBtn.innerHTML = '<span class="material-icons spinner-offline" style="animation: spin 1s infinite linear; vertical-align: middle;">sync</span> Verifica in corso...';
|
||||
|
||||
fetch(BASE_PATH + '/robots.txt', { cache: 'no-store', mode: 'no-cors' })
|
||||
.then(() => {
|
||||
offlineOverlay.classList.remove('active');
|
||||
window.location.reload();
|
||||
})
|
||||
.catch(() => {
|
||||
setTimeout(() => {
|
||||
retryBtn.disabled = false;
|
||||
retryBtn.innerHTML = '<span class="material-icons">refresh</span> Riprova';
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function showOfflineOverlay() {
|
||||
offlineOverlay.classList.add('active');
|
||||
}
|
||||
|
||||
function hideOfflineOverlay() {
|
||||
offlineOverlay.classList.remove('active');
|
||||
}
|
||||
|
||||
window.addEventListener('offline', showOfflineOverlay);
|
||||
window.addEventListener('online', () => {
|
||||
hideOfflineOverlay();
|
||||
console.log('Dispositivo tornato online. Ripristino...');
|
||||
});
|
||||
|
||||
if (!navigator.onLine) {
|
||||
showOfflineOverlay();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inizializzazione principale
|
||||
*/
|
||||
function init() {
|
||||
console.log('Inizializzazione app...');
|
||||
|
||||
// Rilevamento stato offline
|
||||
initOfflineDetection();
|
||||
|
||||
setupOpenAppButton();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user