Skip to content

UI 热键 API

UI 热键只在 BUI 界面打开时 生效,且由客户端脚本注册。

1. 注册 / 取消

js
const id = hotkeys.register({
  pattern: "CTRL, K",
  trigger: "press",
  consume: true,
  priority: 10,
  cooldownMs: 300
}, (payload) => {
  console.log(payload)
})

hotkeys.unregister(id)
hotkeys.clear()

2. 选项字段

  • pattern / keys:热键模式字符串(必填)
  • triggerpress / release / hold
  • consume:命中后是否阻止继续传递(默认 true)
  • allowWhenTyping:输入框聚焦时是否触发(默认 false)
  • priority:优先级(数值越大越先触发)
  • cooldownMs / cooldown:冷却毫秒
  • sequenceIntervalMs / sequenceInterval:连招最大间隔
  • holdMs / hold:按住触发的最短时间(毫秒)
  • id:自定义 ID(可选)

3. pattern 语法

  • 连招:用逗号分隔
    • "W, W"
  • 组合键:用 + 表示同一时间按下
    • "CTRL+K"
  • 按住:在某一步后面加 @毫秒
    • "F@300"(按住 300ms)

4. 回调 payload

js
{
  id: "xxx",
  context: "ui",
  trigger: "press|release|hold",
  time: 1700000000000,
  source: "UI",
  pattern: "CTRL, K"
}

5. 常见坑

  • UI 热键与服务端热键隔离,UI 打开时 服务端热键不会触发
  • allowWhenTyping=false 时,输入框聚焦不会触发。