videofolxtv/client/public/sw.js
sebastjanartic 7c02d0310a Improve the app's experience when added to the iPhone home screen
Implement Progressive Web App (PWA) features for enhanced mobile experience, including service worker registration, manifest.json updates for standalone mode, and CSS adjustments for iOS safe area and touch interactions.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ab9cd02a-d0b2-4288-9ceb-1964d0059648
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/ab9cd02a-d0b2-4288-9ceb-1964d0059648/mbX83Mu
2025-08-31 20:20:49 +00:00

67 lines
1.6 KiB
JavaScript

// Service Worker za go4.video PWA
const CACHE_NAME = 'go4-video-v1';
const urlsToCache = [
'/',
'/manifest.json',
'/api/favicon',
'/api/favicon?size=192',
'/api/favicon?size=512'
];
// Instalacija service worker-ja
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open(CACHE_NAME)
.then((cache) => {
console.log('PWA cache opened');
return cache.addAll(urlsToCache);
})
);
});
// Aktivacija service worker-ja
self.addEventListener('activate', (event) => {
event.waitUntil(
caches.keys().then((cacheNames) => {
return Promise.all(
cacheNames.map((cacheName) => {
if (cacheName !== CACHE_NAME) {
console.log('Deleting old cache:', cacheName);
return caches.delete(cacheName);
}
})
);
})
);
});
// Prestrezanje omrežnih zahtev
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request)
.then((response) => {
// Vrni iz cache-a, če obstaja
if (response) {
return response;
}
// Sicer povleči iz omrežja
return fetch(event.request).then((response) => {
// Preveri ali je veljaven odgovor
if (!response || response.status !== 200 || response.type !== 'basic') {
return response;
}
// Kloniraj odgovor
const responseToCache = response.clone();
caches.open(CACHE_NAME)
.then((cache) => {
cache.put(event.request, responseToCache);
});
return response;
});
})
);
});