mirror of
https://github.com/isledecomp/isle.pizza.git
synced 2026-02-14 08:27:37 +00:00
Service worker fixes
This commit is contained in:
parent
a9f3940e22
commit
05b6e93d13
20
app.js
20
app.js
@ -362,8 +362,10 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
progressCircular.className = 'progress-circular';
|
||||
controlsContainer.appendChild(progressCircular);
|
||||
|
||||
installBtn.addEventListener('click', () => {
|
||||
if (navigator.serviceWorker.controller) {
|
||||
installBtn.addEventListener('click', async () => {
|
||||
if (navigator.serviceWorker && navigator.serviceWorker.controller) {
|
||||
await requestPersistentStorage();
|
||||
|
||||
const selectedLanguage = languageSelect.value;
|
||||
installBtn.style.display = 'none';
|
||||
uninstallBtn.style.display = 'none';
|
||||
@ -390,6 +392,20 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
checkInitialCacheStatus();
|
||||
});
|
||||
|
||||
async function requestPersistentStorage() {
|
||||
if (navigator.storage && navigator.storage.persist) {
|
||||
const isPersisted = await navigator.storage.persisted();
|
||||
if (!isPersisted) {
|
||||
const wasGranted = await navigator.storage.persist();
|
||||
if (wasGranted) {
|
||||
console.log('Persistent storage was granted.');
|
||||
} else {
|
||||
console.log('Persistent storage request was denied.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkInitialCacheStatus() {
|
||||
if (navigator.serviceWorker.controller) {
|
||||
const selectedLanguage = languageSelect.value;
|
||||
|
||||
17
sw.js
17
sw.js
@ -15,7 +15,7 @@ const coreAppFiles = [
|
||||
'/free_stuff_off.webp', '/free_stuff_on.webp', '/install_off.webp', '/install_on.webp',
|
||||
'/island.webp', '/isle.js', '/isle.wasm', '/poster.pdf', '/read_me_off.webp',
|
||||
'/read_me_on.webp', '/run_game_off.webp', '/run_game_on.webp', '/shark.webp',
|
||||
'/uninstall_off.webp', '/uninstall_on.webp', 'app.js', 'style.css', 'manifest.json'
|
||||
'/uninstall_off.webp', '/uninstall_on.webp', '/app.js', '/style.css', '/manifest.json'
|
||||
];
|
||||
|
||||
const gameFiles = [
|
||||
@ -45,6 +45,7 @@ self.addEventListener('install', (event) => {
|
||||
});
|
||||
})
|
||||
);
|
||||
self.skipWaiting();
|
||||
});
|
||||
|
||||
registerRoute(
|
||||
@ -131,8 +132,6 @@ async function installLanguagePack(language, client) {
|
||||
|
||||
for (const file of fileMetadata) {
|
||||
const request = new Request(file.url, { headers: { 'Accept-Language': language } });
|
||||
|
||||
try {
|
||||
const response = await fetch(request);
|
||||
|
||||
if (!response.ok || !response.body) {
|
||||
@ -163,11 +162,6 @@ async function installLanguagePack(language, client) {
|
||||
}
|
||||
|
||||
await cachePromise;
|
||||
} catch (error) {
|
||||
console.error("Aborting installation due to a persistent error:", error);
|
||||
await caches.delete(cacheName);
|
||||
client.postMessage({ action: 'install_failed', language: language });
|
||||
}
|
||||
}
|
||||
|
||||
client.postMessage({
|
||||
@ -177,8 +171,9 @@ async function installLanguagePack(language, client) {
|
||||
});
|
||||
client.postMessage({ action: 'install_complete', success: true, language: language });
|
||||
} catch (error) {
|
||||
console.error('Error during language pack installation:', error);
|
||||
client.postMessage({ action: 'install_failed', success: false, language: language, error: error.message });
|
||||
console.error("Aborting installation due to an error:", error);
|
||||
await caches.delete(cacheName);
|
||||
client.postMessage({ action: 'install_failed', language: language });
|
||||
}
|
||||
}
|
||||
|
||||
@ -214,5 +209,5 @@ self.addEventListener('activate', (event) => {
|
||||
);
|
||||
})
|
||||
);
|
||||
self.clients.claim();
|
||||
event.waitUntil(self.clients.claim());
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user