MediaWiki:Common.js: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung Markierung: Manuelle Zurücksetzung |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 998: | Zeile 998: | ||
mw.loader.load('/index.php?title=MediaWiki:Gadget-LabelScan.css&action=raw&ctype=text/css', 'text/css'); | mw.loader.load('/index.php?title=MediaWiki:Gadget-LabelScan.css&action=raw&ctype=text/css', 'text/css'); | ||
}); | }); | ||
// ==========================ScanApp================================== | |||
/* ==== PWA: Manifest + Service Worker + Install-Button (ES5) ==== */ | |||
/* Manifest einbinden */ | |||
(function () { | |||
var link = document.createElement("link"); | |||
link.rel = "manifest"; | |||
link.href = "/app/labelscan/manifest.json"; | |||
document.head.appendChild(link); | |||
})(); | |||
/* Service Worker registrieren (nur wenn vorhanden) */ | |||
(function () { | |||
if ("serviceWorker" in navigator) { | |||
navigator.serviceWorker.register("/app/labelscan/sw.js")["catch"](function () {}); | |||
} | |||
})(); | |||
/* Install-Button steuern (Button-ID: ados-install) */ | |||
(function () { | |||
var installPrompt = null; | |||
// Wird von Chrome/Edge/Android gefeuert, wenn installierbar | |||
window.addEventListener("beforeinstallprompt", function (e) { | |||
try { | |||
e.preventDefault(); | |||
} catch (ex) {} | |||
installPrompt = e; | |||
var btn = document.getElementById("ados-install"); | |||
if (btn) { | |||
btn.style.display = "inline-block"; | |||
} | |||
}); | |||
// Sicherstellen, dass DOM existiert, bevor wir Handler setzen | |||
function onReady(fn) { | |||
if (document.readyState === "loading") { | |||
document.addEventListener("DOMContentLoaded", fn); | |||
} else { | |||
fn(); | |||
} | |||
} | |||
onReady(function () { | |||
var btn = document.getElementById("ados-install"); | |||
if (!btn) return; | |||
btn.addEventListener("click", function () { | |||
if (!installPrompt) return; | |||
try { | |||
installPrompt.prompt(); | |||
} catch (ex) {} | |||
installPrompt = null; | |||
btn.style.display = "none"; | |||
}); | |||
}); | |||
})(); | |||