Skip to content

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-Mutex empê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

ActionRésultat
MinimiserAutorisé — accès taskbar et bureau conservé
RedimensionnerBloqué (ResizeMode="CanMinimize")
Fermer (×, Alt+F4)Dialog mot de passe SuperAdmin requis
Double-clic icône trayRestaure la fenêtre maximisée

Démarrage en développement

bash
# Le backend doit tourner sur :5000
cd client
dotnet run

Dev tools et menu contextuel WebView2 sont activés en DEBUG, désactivés en Release.

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.

Documentation Technique