diff options
Diffstat (limited to 'web/static')
-rw-r--r-- | web/static/dartboat.js | 13 | ||||
-rw-r--r-- | web/static/sw.js | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/web/static/dartboat.js b/web/static/dartboat.js index 39e0371..6051b7e 100644 --- a/web/static/dartboat.js +++ b/web/static/dartboat.js @@ -197,3 +197,16 @@ document.addEventListener('keydown', e => { if ('serviceWorker' in navigator) navigator.serviceWorker.register('sw.js'); + +// disable back button when installed as a PWA. a single click exits the app, +// destroying match state without confirmation, so we must resort to this. +if (window.matchMedia('(display-mode: standalone)').matches) { + window.addEventListener('load', () => { + if (!history.state) { + history.replaceState(true, ''); + history.pushState(true, ''); + } + }); + + window.addEventListener('popstate', () => history.pushState(true, '')); +} diff --git a/web/static/sw.js b/web/static/sw.js index 7ed7a85..f5d699a 100644 --- a/web/static/sw.js +++ b/web/static/sw.js @@ -1,5 +1,5 @@ const CACHE_PREFIX = 'dartboat-' -const CACHE_VERSION = '2'; +const CACHE_VERSION = '3'; const CACHE_NAME = `${CACHE_PREFIX}${CACHE_VERSION}`; const FILES = [ |