javascript - Electron 不监听按键事件

标签 javascript electron

我是一个后端开发人员,他有一个小项目可以修复它。
因此,老板给了我一个在触摸设备上运行的 Electron 项目。

我知道,如果我使用document对象,我可以监听Javascript中的任何关键事件,但是在 Electron 中,docuemnt cannot be found表示它不起作用。

因此,当我或其他支持人员按下F12按钮时,将其实现,然后将开发工具呈现在 Electron 应用程序中。

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();
    }
  };

但是这段代码对我不起作用。我不知道如何才能听到F12按钮被按下的声音。

不幸的是,我无法向可以显示devtools的UI渲染按钮。因为顾客一定不要按它。

有时,我需要在设备上的devtools中查看“实时控制台”选项卡。

最佳答案

有一个known issue in Electron(最近被标记为wontfix)阻止了使用传统JS方法捕获键事件的常用方法。

还有一个名为electron-localshortcut的小型库,通过在窗口处于 Activity 状态时劫持Electron全局快捷方式API来避免此问题。

在main.js中这样使用:

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

关于javascript - Electron 不监听按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40763427/

相关文章:

architecture - 在 Electron 框架中制作的应用程序不安全?

reactjs - 如何为React-Redux-Electron JS应用程序创建简单的结构

javascript - Electron内置模块和npm安装的模块有什么区别吗?如何从其他模块访问 Electron 对象?

javascript - 将数组值从一个类传递到另一个类

javascript - 输入值更改时 html() 方法错误

代码中的 javascript 输出示例

javascript - 使用 Electron 在 app.asar 中包含额外文件

javascript - 创建一个类,从另一个扩展并调用父方法

javascript - url 中没有哈希值的回家路线...backbone.js?

html - 在Electron中单击按钮时使脚本运行