电子不听keydown事件

Dab*_*gab 2 javascript electron

我是一个后端开发人员,有一个小项目来解决它.所以我的老板给了我一个在触摸设备上运行的电子项目.

我知道如果我使用该document对象,我可以在Javascript中听任何关键事件,但在电子中它不起作用,它说docuemnt cannot be found.

所以当我或其他支持人员按下F12按钮然后在电子应用程序中渲染开发工具时实现这一点.

mainWindow = new BrowserWindow({
    'web-preferences': {'web-security': false}
  });

  mainWindow.onkeydown = function (e) {
    console.log("Key down");
    if (e.which === 123) {
      console.log("Key is F12");
      mainWindow.webContents.openDevTools();
    }
  };
Run Code Online (Sandbox Code Playgroud)

但是这段代码对我不起作用.我不知道如何按下F12按钮.

不幸的是,我无法向UI显示按钮,可以显示devtools.因为客户不能按它.

有时我需要在设备上的devtools中看到实时控制台选项卡.

Jen*_*ger 8

Electron中存在一个已知问题,它阻止了使用传统JS方法捕获关键事件的常用方法.

还有一个名为electron-localshortcut的小型库,可以在窗口处于活动状态时通过劫持Electron全局快捷方式API来解决此问题.

在main.js中使用这样的:

const electronLocalshortcut = require('electron-localshortcut');
electronLocalshortcut.register(mainWindow, 'F12', () => {
    // Open DevTools
});
Run Code Online (Sandbox Code Playgroud)