- 系统快捷键
- 方法
- globalShortcut.register(accelerator, callback)
- globalShortcut.isRegistered(accelerator)
- globalShortcut.unregister(accelerator)
- globalShortcut.unregisterAll()
- 方法
系统快捷键
在应用程序没有键盘焦点时,监听键盘事件。
线程:主线程
globalShortcut 模块可以在操作系统中注册/注销全局快捷键, 以便可以为操作定制各种快捷键。
注意: 快捷方式是全局的; 即使应用程序没有键盘焦点, 它也仍然在持续监听键盘事件。 在应用程序模块发出 ready 事件之前, 不应使用此模块。
const { app, globalShortcut } = require('electron')app.on('ready', () => {// 注册一个 'CommandOrControl+X' 的全局快捷键const ret = globalShortcut.register('CommandOrControl+X', () => {console.log('CommandOrControl+X is pressed')})if (!ret) {console.log('registration failed')}// 检查快捷键是否注册成功console.log(globalShortcut.isRegistered('CommandOrControl+X'))})app.on('will-quit', () => {// 注销快捷键globalShortcut.unregister('CommandOrControl+X')// 注销所有快捷键globalShortcut.unregisterAll()})
方法
globalShortcut 模块具有以下方法:
globalShortcut.register(accelerator, callback)
acceleratorAcceleratorcallbackFunction
注册指定的accelerator为全局快捷键。当用户按下该注册的快捷键时, 将调用callback回调函数。
如果指定的快捷键已经被其他应用程序注册掉, 调用会默默失败。 该特性由操作系统定义,因为操作系统不希望多个程序的全局快捷键互相冲突。
在 macOS 10.14 Mojave 下面,如果 app 没有被授权为可信任使用的客户端,那么下列快捷键会注册失败:
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.isRegistered(accelerator)
acceleratorAccelerator
返回Boolean- 表示accelerator全局快捷键是否注册成功
当快捷键已经被其他应用程序注册时, 此调用依然将返回 false。 该特性由操作系统定义,因为操作系统不希望多个程序的全局快捷键互相冲突。
globalShortcut.unregister(accelerator)
acceleratorAccelerator
注销accelerator的全局快捷键。
globalShortcut.unregisterAll()
注销所有的全局快捷键(清空该应用程序的所有全局快捷键)。
