You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native桌面应用如何实现全局快捷键监听?

React Native桌面端全局热键监听说明

首先明确结论:运行在MacOS/Windows上的React Native桌面应用完全支持监听全局热键,即使用户在其他应用窗口操作也能捕获对应按键事件,具体实现取决于你使用的桌面适配方案:

  • 微软官方react-native-windows/react-native-macos方案
    • Windows端可直接调用Win32原生的RegisterHotKeyAPI,也可使用社区封装的RN第三方包来绑定Ctrl+Win/Alt类组合键,注册成功后即可在后台接收热键触发回调
    • macOS端可调用CGEventTapCreate系列系统API绑定Cmd+Ctrl类全局快捷键,注意macOS需要在系统设置中为应用开启「辅助功能」权限,否则无法捕获非聚焦状态下的按键事件
  • React Native + Electron混合打包方案
    直接使用Electron内置的globalShortcut模块即可完成注册,示例代码如下:
const { app, globalShortcut } = require('electron')

app.whenReady().then(() => {
  // 注册全局热键 Ctrl+Cmd+X / Ctrl+Win+X
  const isRegistered = globalShortcut.register('CommandOrControl+X', () => {
    console.log('全局热键被触发')
    // 此处可通过IPC向RN渲染层发送事件通知
  })

  if (!isRegistered) {
    console.log('热键注册失败,可能已被其他应用占用')
  }
})

// 应用退出前注销所有热键,避免残留
app.on('will-quit', () => {
  globalShortcut.unregisterAll()
})

注意事项:

  • 全局热键存在系统级抢占规则,若对应组合键已被系统或其他正在运行的应用占用,会出现注册失败的情况,建议注册后判断返回值做降级处理
  • 热键触发回调默认在主进程执行,若需要通知RN业务层做逻辑处理,需通过对应方案的进程通信机制传递事件
  • 部分高版本系统会对全局热键监听做权限限制,上架应用商店时需要提前说明权限用途

内容的提问来源于stack exchange,提问作者Mahdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:42:03