首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电子对Web键盘快捷键的反应

电子对Web键盘快捷键的反应
EN

Stack Overflow用户
提问于 2020-02-24 16:46:09
回答 2查看 638关注 0票数 2

我试图添加键盘快捷键,专门为电子(web)构建一个反应-本机-web应用程序。

我确实有一些快捷键在index.electron.js中已经被定义为加速器,但是我希望这些新的快捷键不在菜单中使用,它们需要响应动作/还原器来执行。

我尝试将window.onkeydown = (e) => {添加到App.web.js::componentDidMount中,但是这只在浏览器中运行应用程序时才有效。当我构建应用程序并以电子方式运行它(它运行的是.web版本的文件)时,我会因为没有定义window而崩溃。

我很难理解如何将键盘快捷键/事件侦听器(触发特定于反应的代码)添加到一个使用React构建的电子应用程序中。

提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-24 19:41:24

您应该使用电子API globalShortcutIPC将事件发送到网页。

主工艺代码

代码语言:javascript
运行
AI代码解释
复制
  const { globalShortcut } = require('electron')

  // this will be triggered when the accelerator is pressed
  // even if the app is in the background
  const ret = globalShortcut.register("Your_Accelerator", () => {
    yourWindow.webContents.send("shortcut", "shortcut has been pressed")
  });

  if (!ret) {
    console.log("registration failed");
  } else {
    console.log("registration succeeded");
  }

渲染程序处理代码

代码语言:javascript
运行
AI代码解释
复制
  const { ipcRenderer } = require("electron");
  ipcRenderer.on("shortcut", (event, message) => {
    console.log(message) // Prints "shortcut has been pressed"
  })
票数 1
EN

Stack Overflow用户

发布于 2020-02-24 19:21:31

我不经常使用react本机,所以我不确定是否有可能仅用框架来完成这个任务。假设您使用的是npm,您只需下载一个可以支持此功能的包即可。反应热键听起来好像可以做你需要的快捷方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60386041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档