本节我们学习 Electron
中的键盘快捷键。在 Electron
中,键盘快捷键被称作加速器,它们能够分派到运用程序菜单中的操纵上,也能够全局分派,所以纵然你的运用程序没有取得键盘核心,它们也能够被触发。
Electron
中有主进程和渲染进程这两种进行,所以我们可以分别在主进程中注册快捷键和在渲染进程中注册快捷键。
主进程注册快捷键
在主进程注册快捷键有两种方式,一种是利用 Menu
模块来模拟快捷键,二就是全局快捷键。
本地快捷键
我们可以使用 Electron
中的 Menu
模块来配置键盘快捷键,只有在 app
处于焦点状态时才可以触发快捷键,使用比较少。我们在创建 Menuitem
时必须指定一个 accelerator
属性。
示例:
const {
Menu, MenuItem } = require('electron');
const menu = new Menu();
menu.append(new MenuItem({
label: 'Print',
accelerator: 'Ctrl+P',
click: () => {
console.log('打印资料') }
}))
我们还可以根据用户的操作系统配置不同的组合键:
accelerator: process.platform === 'darwin' ? 'Alt+Ctrl+I' : 'Ctrl+Shift+I'
全局快捷键
在应用程序没有键盘焦点时,我们可以使用 globalshortcut
模块检测键盘事件。我们来看下面这个例子。
示例:
下面代码中,我们将开发者工具的快捷键设置为 Alt+B
:
// 引入electron
const {
app, BrowserWindow,globalShortcut} = require('electron');
let win;
function createWindow() {
// 创建浏览器窗口
win = new BrowserWindow({
width: 800,
height: 400,
webPreferences: {
nodeIntegration: