This commit is contained in:
cpu
2025-03-28 05:50:28 +01:00
parent d1ad962ec3
commit 2e47461f34
5 changed files with 15 additions and 306 deletions

36
app.js
View File

@@ -5,7 +5,6 @@ import * as ui from './ui.js';
import * as timer from './timer.js';
import camera from './camera.js'; // Default export
import audioManager from './audio.js';
import deepLinkManager from './deeplinks.js';
import * as pushFlic from './pushFlicIntegration.js';
// --- Core Game Actions ---
@@ -338,15 +337,9 @@ function setupServiceWorker() {
// Initialize Flic integration (which will try to subscribe)
initFlic();
// Setup deep links *after* SW might be ready
setupDeepLinks();
})
.catch(error => {
console.error('ServiceWorker registration failed:', error);
// Still setup deep links even if SW fails
setupDeepLinks();
// Maybe inform user push notifications won't work
});
});
// Listen for SW controller changes
@@ -357,40 +350,15 @@ function setupServiceWorker() {
} else {
console.warn('ServiceWorker not supported.');
// Setup deep links anyway
window.addEventListener('load', setupDeepLinks);
}
}
function handleServiceWorkerMessage(event) {
console.log('[App] Message received from Service Worker:', event.data);
console.log('[App] Message received from Service Worker:', event.data);
if (event.data?.type === 'flic-action') {
const { action, button, timestamp } = event.data;
pushFlic.handleFlicAction(action, button, timestamp);
}
else if (event.data?.type === 'ACTION') { // Handle deep link actions sent from SW
console.log('Received action from service worker via postMessage:', event.data.action);
deepLinkManager.handleAction(event.data.action);
}
// Add other message type handlers if needed
}
// --- Deep Link Setup ---
function setupDeepLinks() {
deepLinkManager.registerHandler('start', startGame);
deepLinkManager.registerHandler('pause', pauseGame);
deepLinkManager.registerHandler('toggle', togglePauseResume);
deepLinkManager.registerHandler('nextplayer', nextPlayer);
deepLinkManager.registerHandler('prevplayer', previousPlayer); // Add previous player handler
deepLinkManager.registerHandler('reset', handleResetButtonClick); // Show confirmation
// Process initial deep link on load
deepLinkManager.processDeepLink();
// Listen for subsequent deep links
window.addEventListener('hashchange', deepLinkManager.processDeepLink);
// Also listen for popstate if using history API or query params
window.addEventListener('popstate', deepLinkManager.processDeepLink);
}
// --- Flic Integration Setup ---
@@ -453,7 +421,7 @@ function initialize() {
ui.elements.resetCancelButton.addEventListener('click', handleResetCancel);
ui.elements.cameraButton.addEventListener('click', handleCameraButtonClick);
// 6. Setup Service Worker (which also initializes Flic and Deep Links)
// 6. Setup Service Worker (which also initializes Flic)
setupServiceWorker();
// 7. Initial UI Update based on loaded state