Thème
Client — Superviseur WPF
Application WPF encapsulant l'interface web dans une fenêtre native Windows via WebView2 (Edge Chromium). Conçue pour fonctionner en mode kiosk sur les postes de supervision incendie.
Fonctionnalités
- Mode kiosk sécurisé : fenêtre démarrée en plein écran, non redimensionnable, fermeture protégée par mot de passe SuperAdmin
- Notifications Windows natives : alertes incendie et dérangements affichées même fenêtre minimisée (balloon tips via
NotifyIcon) - Icône barre des tâches : double-clic pour restaurer la fenêtre au premier plan
- Instance unique : mutex
Superviseur-Mutexempêche plusieurs instances simultanées - Attente du backend : écran de chargement avec retry automatique (15 tentatives × 2s)
- WebView bridge : le frontend Vue communique avec le WPF via
window.chrome.webview.postMessage()pour déclencher les notifications OS
Architecture
MainWindow
├── WebView2 (http://localhost:5000)
│ └── Vue SPA ──postMessage──► OnWebViewMessage → NotifyIcon.ShowBalloonTip()
├── NotifyIcon (barre des tâches)
├── OnClosing → PasswordVerifyDialog → POST /api/auth/login
└── PasswordVerifyDialog (WPF natif)Mode kiosk — comportement
| Action | Résultat |
|---|---|
| Minimiser | Autorisé — accès taskbar et bureau conservé |
| Redimensionner | Bloqué (ResizeMode="CanMinimize") |
| Fermer (×, Alt+F4) | Dialog mot de passe SuperAdmin requis |
| Double-clic icône tray | Restaure la fenêtre maximisée |
Démarrage en développement
bash
# Le backend doit tourner sur :5000
cd client
dotnet runDev tools et menu contextuel WebView2 sont activés en
DEBUG, désactivés enRelease.
Prérequis
- WebView2 : préinstallé sur Windows 10 1803+ / Windows 11 via Windows Update. Embarqué dans l'installateur de production (téléchargé au moment du build).
- Backend : doit être accessible sur
http://localhost:5000
Build production
Géré par deployment/build-all.ps1 — self-contained, fichier unique, aucun runtime requis sur la machine cible.