mirror of
https://github.com/SuperBFG7/ympd
synced 2025-12-18 03:48:14 +00:00
feat: Implement ServiceWorker
feat: Implement A2H
This commit is contained in:
@@ -29,6 +29,7 @@ var current_song = new Object();
|
||||
var playstate = '';
|
||||
var settings = {};
|
||||
var alertTimeout;
|
||||
let deferredPrompt;
|
||||
|
||||
var app = {};
|
||||
app.apps = { "Playback": { "state": "0/-/", "scrollPos": 0 },
|
||||
@@ -66,6 +67,7 @@ domCache.btnNext = document.getElementById('btnNext');
|
||||
domCache.progressBar = document.getElementById('progressBar');
|
||||
domCache.volumeBar = document.getElementById('volumeBar');
|
||||
domCache.outputs = document.getElementById('outputs');
|
||||
domCache.btnAdd = document.getElementById('btnAdd');
|
||||
|
||||
var modalConnectionError = new Modal(document.getElementById('modalConnectionError'));
|
||||
var modalSettings = new Modal(document.getElementById('modalSettings'));
|
||||
@@ -456,6 +458,51 @@ function appInit() {
|
||||
}
|
||||
event.preventDefault();
|
||||
}, false);
|
||||
|
||||
if ('serviceWorker' in navigator) {
|
||||
window.addEventListener('load', function() {
|
||||
navigator.serviceWorker.register('/sw.js', {scope: '/'}).then(function(registration) {
|
||||
// Registration was successful
|
||||
console.log('ServiceWorker registration successful with scope: ', registration.scope);
|
||||
}, function(err) {
|
||||
// registration failed :(
|
||||
console.log('ServiceWorker registration failed: ', err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener('beforeinstallprompt', (e) => {
|
||||
// Prevent Chrome 67 and earlier from automatically showing the prompt
|
||||
e.preventDefault();
|
||||
// Stash the event so it can be triggered later.
|
||||
deferredPrompt = e;
|
||||
});
|
||||
|
||||
window.addEventListener('beforeinstallprompt', (e) => {
|
||||
e.preventDefault();
|
||||
deferredPrompt = e;
|
||||
// Update UI notify the user they can add to home screen
|
||||
domCache.btnAdd.classList.remove('hide');
|
||||
});
|
||||
|
||||
domCache.btnAdd.addEventListener('click', (e) => {
|
||||
// hide our user interface that shows our A2HS button
|
||||
domCache.btnAdd.classList.add('hide');
|
||||
// Show the prompt
|
||||
deferredPrompt.prompt();
|
||||
// Wait for the user to respond to the prompt
|
||||
deferredPrompt.userChoice.then((choiceResult) => {
|
||||
if (choiceResult.outcome === 'accepted')
|
||||
console.log('User accepted the A2HS prompt');
|
||||
else
|
||||
console.log('User dismissed the A2HS prompt');
|
||||
deferredPrompt = null;
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener('appinstalled', (evt) => {
|
||||
console.log('appinstalled');
|
||||
});
|
||||
}
|
||||
|
||||
function webSocketConnect() {
|
||||
|
||||
Reference in New Issue
Block a user