Skip to content

CEF HUD

Клиент создаёт browser view и отправляет в него состояние HUD. UI подписывается на событие через bridge.

Клиент:

ts
const hud = vimp.browsers.create('package://ui/index.html')

vimp.on('ui:ready', ({ mountedAt }) => {
  console.log(`HUD mounted at ${mountedAt}`)
})

vimp.on('hud:toast', (payload) => {
  hud.executeJavaScript(
    `window.__vimpRecv?.('hud:toast', ${JSON.stringify(payload)})`,
  )
})

UI:

ts
const unsubscribe = vimp.on('hud:toast', (payload) => {
  console.log('Toast from the client script:', payload)
})

vimp.emitClient('ui:ready', { mountedAt: Date.now() })
vimp.emitServer('garage:spawn', { model: 'adder' })

window.addEventListener('beforeunload', unsubscribe)

CEF — отдельный контекст. Передавайте только сериализуемые данные и очищайте подписки при уничтожении интерфейса.

VIMP developer documentation