Appearance
Native Heartbeat Delegation ​
Problem Statement ​
Le heartbeat JavaScript existant met a jour le champ heartbeat du device dans Directus. Dans une WebView Android passee en arriere-plan, les timers JavaScript peuvent etre suspendus et le monitoring backend peut considerer le device hors ligne.
Solution Overview ​
La webapp probe les capabilities de l'hote via GET_HOST_CAPABILITIES. Si l'hote annonce explicitement un heartbeat natif qui tourne en arriere-plan, la webapp enregistre le contexte avec REGISTER_HEARTBEAT_CONTEXT et ne planifie pas la tache JavaScript heartbeatDevice.
Le fallback JavaScript reste le comportement legacy pour tous les autres cas.
Decision Rules ​
La delegation native est acceptee uniquement si toutes les conditions sont vraies:
capabilities.actions.REGISTER_HEARTBEAT_CONTEXT === truecapabilities.runtime.heartbeat.supported === truecapabilities.runtime.heartbeat.runsInBackground === true- la reponse de
REGISTER_HEARTBEAT_CONTEXTcontientnativeHeartbeat === true
Included Documents ​
implementation.md: flux d'execution et points de code.compatibility.md: matrice de compatibilite et fallback legacy.troubleshooting.md: diagnostics courants.
References ​
docs/technique/bridge/host-capabilities/README.mddocs/technique/bridge/host-response-contract.mdsrc/lib/utils/utilsCms.tssrc/lib/stores/tasks.ts