forked from Krazete/takatomon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpwa.js
42 lines (36 loc) · 1.22 KB
/
pwa.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function initPWA() {
var pwa = document.getElementById("pwa");
var installer;
var pwatimer = localStorage.getItem("pwatimer") || 0;
function endPrompt(choice) {
if (choice.outcome == "accepted") {
console.log("A2HS prompt accepted.");
}
else {
console.log("A2HS prompt dismissed.");
}
installer = null;
window.removeEventListener("beforeinstallprompt", showPrompt);
localStorage.setItem("pwatimer", Date.now());
}
function clickPrompt() {
pwa.classList.add("hidden");
installer.prompt();
installer.userChoice.then(endPrompt);
}
function showPrompt(e) {
e.preventDefault();
installer = e;
pwa.classList.remove("hidden");
pwa.addEventListener("click", clickPrompt);
}
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("nullsw.js").then(function (e) {
console.log("[PWA] Service Worker registered for " + e.scope + ".");
});
}
if (Date.now() - pwatimer >= 31536000000) { /* don't ask for a year */
window.addEventListener("beforeinstallprompt", showPrompt);
}
}
window.addEventListener("load", initPWA);