This commit is contained in:
Til Schmitter 2026-06-21 10:39:49 +02:00
parent 3788b9b132
commit 5a33c4cd8a
3 changed files with 91 additions and 87 deletions

View file

@ -33,7 +33,8 @@ function jsldp(a, b) {
}
loadScript('baguettebox', "J_BBX");
loadScript('up2k', "J_U2K");
loadScript('sw');
if (navigator.serviceWorker)
loadScript('sw');
// disables emojis

View file

@ -1,10 +1,9 @@
// service worker. required for PWAs
// https://www.digitalapplied.com/blog/progressive-web-apps-2026-pwa-performance-guide
// Register service worker on page load
console.log('sw.js')
if ('serviceWorker' in navigator) {
console.log('sw load')
self.addEventListener("fetch", (event) => {
// modern syntax allowed here, only supported browsers load this file
console.log('sw load')
self.addEventListener("fetch", (event) => {
// Regular requests not related to Web Share Target.
if (event.request.method !== "POST" || !event.request.action.has("share-target")) {
console.log('normal response')
@ -43,13 +42,12 @@ if ('serviceWorker' in navigator) {
return fetch(newRequest)
})(),
);
});
self.addEventListener('install', (event) => {
});
self.addEventListener('install', (event) => {
console.log('sw wait skip')
self.skipWaiting(); // insta replace old service workers (helpful for dev)
});
const addResourcesToCache = async (resources) => {
});
const addResourcesToCache = async (resources) => {
const cache = await caches.open("files");
await cache.addAll(resources);
};
}
};

View file

@ -2362,7 +2362,10 @@ function setColor (color) {
pbar.drawpos();
vbar.draw();
}
var accent = sread('accent');
var accent = "";
if(sread != undefined)
accent = sread('accent');
var tcolor = QS('meta[name=theme-color]');
if(tcolor)
tcolor = tcolor.content;
@ -2448,13 +2451,14 @@ function xhrchk(xhr, prefix, e404, lvl, tag) {
return fun(0, prefix + xhr.status + ": " + errtxt, tag);
}
// register service worker
// ToDo: set http header: Service-Worker-Allowed: /
// otherwise it will fail to register
// https://stackoverflow.com/questions/49084718/how-exactly-add-service-worker-allowed-to-register-service-worker-scope-in-upp
window.addEventListener('load', async () => {
if (navigator.serviceWorker){
// register service worker
// ToDo: set http header: Service-Worker-Allowed: /
// otherwise it will fail to register
// https://stackoverflow.com/questions/49084718/how-exactly-add-service-worker-allowed-to-register-service-worker-scope-in-upp
window.addEventListener('load', function() {
try {
const registration = await navigator.serviceWorker.register("/.cpr/w/sw.js", {
var registration = navigator.serviceWorker.register("/.cpr/w/sw.js", {
scope: "/",
});
if (registration.installing) {
@ -2465,26 +2469,27 @@ window.addEventListener('load', async () => {
console.log("Service worker active");
}
} catch (error) {
console.error(`Registration failed with ${error}`);
console.error("Registration failed with " + error);
}
});
});
if(ebi('inst')){
if(ebi('inst')){
var installPrompt = null;
window.addEventListener("beforeinstallprompt", function(e) {
e.preventDefault();
installPrompt = e;
ebi('inst').removeAttribute("hidden");
});
ebi('inst').onclick = async function(){
ebi('inst').onclick = function(){
if (!installPrompt) {
return;
}
const result = await installPrompt.prompt();
console.log(`Install prompt was: ${result.outcome}`);
var result = installPrompt.prompt();
console.log("Install prompt was: " + result.outcome);
installPrompt = null;
ebi('inst').setAttribute("hidden", "");
}
}
}
J_UTL = 2;