返回文章列表
Electron-开发实践:注册快捷键
Electron
【前言】
本文介绍一下electron应用中如何注册快捷键
【主进程】
主进程注册快捷键比较简单,需要注意的是在app ready后使用,
常见键盘映射: https://www.electronjs.org/docs/latest/api/accelerator
// 注册
globalShortcut.register(shortcutKey, shortcutCallback);
// 取消注册
globalShortcut.unregister(shortcutKey);
另外在推出app时需要将所有注册的快捷键清理掉
app.on('will-quit', () => {
globalShortcut.unregisterAll();
});
【渲染进程】
要在渲染进程注册快捷键稍微复杂一些,
这里封装了一个npm包,欢迎使用: https://code.insistime.com/#/qiao-x-shortcut
主进程初始化ipc监听
import { shortcutIPCInit } from 'qiao-x-shortcut';
shortcutIPCInit({
shortcutCallbackName: () => console.log('shortcutCallbackName from main process'),
});
preload相关
shortcut-preload.js
// electron
import { ipcRenderer } from 'electron';
/**
* shortcutGlobalIPC
* @returns res
*/
export const shortcutGlobalIPC = async (shortcutKey, shortcutCallbackName) => {
return await ipcRenderer.invoke('ipc-shortcut-global', shortcutKey, shortcutCallbackName);
};
preload.js
// electron
import { contextBridge } from 'electron';
// custom preload
import { shortcutGlobalIPC } from './shortcut-preload.js';
// preload
contextBridge.exposeInMainWorld('electron', {
shortcutGlobalIPC,
});
渲染进程调用
await window.electron.shortcutGlobalIPC('Command+Control+X', 'shortcutCallbackName');
效果
在渲染进程将快捷键Command+Control+X注册好了,
效果如下,每次按快捷键,主进程都会有日志打印
shortcutCallbackName from main process
shortcutCallbackName from main process
shortcutCallbackName from main process 更多同类文章
- Electron-开发实践:注册苹果开发者账号
- Electron-开发实践:clipboard剪切板
- Electron-开发实践:crash上报及解析
- Electron-开发实践:DMG安装包定制
- Electron-开发实践:包体积精简
- Electron-开发实践:制作icns图标
- Electron-开发实践:本地日志
- Electron-开发实践:定制Mac菜单
- Electron-开发实践:Mac应用包签名和公证
- Electron-开发实践:Mac打包
- Electron-开发实践:使用Monorepo管理Electron项目
- Electron-开发实践:几种更新方式
- Electron-开发实践:创建Window
- 一篇文章学会Electron
- Electron-开发实践:本地数据库SQLite