:::

Electron加上快捷鍵 / Hotkeys in an Electron Application

2023-0120-181907.png

如果想要為electron應用程式加上快捷鍵的話,要怎麼做好呢?


globalShortcut

2023-0120-182253.png

https://github.com/electron/electron/issues/8491

很久以前我是用 electron.globalShortcut。用法如下:

const globalShortcut = electron.globalShortcut
let window = new BrowserWindow()
window.loadURL(someUrl)
globalShortcut.register('Ctrl+R', () => {
  window.webContents.reload()
})

但是globalShortcut的問題是,不論現在是否在操作electron應用程式,globalShortcut會捕捉所有的鍵盤操作。

這就有點麻煩了。


解決方案 / Solution

https://github.com/electron/electron/issues/8491#issuecomment-1002515761

還好下面daaru00提供了另一種思考方式:

  1. 在操作electron應用程式時(blorder-window-focus),註冊globalShortcut
  2. 在操作不是electron的應用程式時(blorder-window-blur),取消註冊globalShortcut

還蠻合理的。


2023-0120-182321.png

https://www.npmjs.com/package/electron-localshortcut

不過更合理的是使用electron-localshortcut。

怎麼會傻到使用globalShortcut呢 orz


還有人在用electron開發應用程式嗎?

下面舉個手吧。