Intégration côté front
Le composant s'affiche dans une iframe servie par Wave Up. Votre page ne voit jamais ce qui est saisi : seuls des événements, sans donnée de santé, lui parviennent.
Afficher le composant
<div id="evaluation"></div>
<script src="https://embed.waveup-health.fr/v1/sdk.js"></script>
<script>
const ev = WaveUp.mount('#evaluation', {
clientToken: '…', // reçu de votre serveur
locale: 'fr-FR', // facultatif : une locale autorisée, sinon celle de la session
theme: 'auto', // 'light', 'dark' ou 'auto'
height: 'auto', // ou une hauteur CSS fixe
minHeight: 640, // en mode auto, en px (640 recommandé pour dessiner)
})
</script>
Le SDK existe aussi en module : npm install @waveup/sdk, puis import { mount } from '@waveup/sdk'.
- Jeton : il n'apparaît jamais dans l'adresse de l'iframe. Le SDK le transmet par message, uniquement au domaine Wave Up.
- Environnement : le SDK le déduit du jeton (bac à sable ou production).
Événements
| Événement | Données | Quand |
|---|---|---|
ready |
— | La session est chargée et le composant affiché |
step |
{ step } |
Changement d'étape : cartography, questionnaires, review, done |
lock |
— | Le patient prend l'appareil : masquez votre navigation |
unlock |
— | Le praticien reprend la main |
completed |
{ sessionId } |
L'évaluation est envoyée : récupérez le résultat côté serveur |
cancelled |
— | La page du composant est quittée avec une saisie en cours |
error |
{ code, message } |
session_expired, invalid_token, already_submitted, network, unsupported_browser, internal |
ev.on('lock', () => document.body.classList.add('patient-mode'))
ev.on('unlock', () => document.body.classList.remove('patient-mode'))
ev.on('error', ({ code }) => code === 'session_expired' && recreerUneSession())
const stop = ev.on('step', ({ step }) => console.log(step))
stop() // se désabonner
ev.destroy() // retirer le composant
Taille et plein écran
- Hauteur : en mode
height: 'auto', l'iframe suit son contenu. Prévoyez au moins 640 px pour que l'avatar reste assez grand pour dessiner. - Largeur : le composant s'adapte à la place que vous lui laissez. Il est conçu pour une tablette (iPad) ou un ordinateur, et reste utilisable sur téléphone.
- Plein écran : le composant le demande quand le patient commence les questionnaires. Là où il n'existe pas (iPhone), le SDK fait défiler la page jusqu'au composant.
- Verrouillage : le composant ne peut pas bloquer votre page. Pendant la passation (
lock→unlock), ne superposez aucun élément interactif et masquez votre navigation.
Domaines autorisés
L'iframe ne s'affiche que sur les domaines déclarés pour votre compte (en-tête frame-ancestors). Communiquez-nous tous vos domaines, y compris ceux de recette.
Applications mobiles (WebView)
Le composant fonctionne dans une WebView iOS (WKWebView) ou Android : chargez une page de votre domaine qui utilise le SDK. Pour les sliders et le dessin, désactivez le zoom de la page (<meta name="viewport" content="width=device-width, initial-scale=1">).
Navigateurs pris en charge
Versions récentes de Safari (iPadOS, macOS), Chrome, Edge et Firefox. Le composant signale un navigateur trop ancien par l'événement error (unsupported_browser).