【发布时间】:2021-08-05 15:53:22
【问题描述】:
在 Electron 的世界里还很新,但我想为自己做一个小应用程序。
我的应用程序的要点如下:因为我在许多不同的应用程序中工作,所以当我有一段时间没有涉足上述应用程序时,经常会忘记更复杂的快捷方式。所以,我想制作一个 Electron 应用程序,它向我显示一堆图标,我可以在触摸显示器上按下这些图标,然后为我执行命令。有点像虚拟直播平台。
到目前为止,我的应用程序使用 Electron、Webpack 和 React 运行,并且我设法在 React 和 Main.js 部分之间建立了有效的 IPC 连接。
/* React App.js */
const handleHotKeyClick = (hotkey: string) =>{
ipcRenderer.send(CATCH_ON_MAIN, hotkey);
}
在 Main.js 中,我尝试直接从 ipcMain 中触发 globalShortcut,如下所示:
ipcMain.on(CATCH_ON_MAIN, (event, arg) => {
console.log('Incoming command', arg);
globalShortcut.register(arg, () => {
console.log('ipc pressed!')
})
});
这不起作用。似乎 globalShortcut 仅适用于 App.ready。
那么,如何使用我在此处设置的 ipc 通信设置这样的全局快捷方式。 其次,我注意到如果我在 App.Ready 中对 shorthut 处理程序进行硬编码,它会捕获它,但不会继续执行命令应该执行的操作。它可以防止默认行为。有没有办法解决这个问题?
非常感谢!
【问题讨论】: