【问题标题】:Electron Browser Window Prevent Control+W closing windowElectron 浏览器窗口阻止 Control+W 关闭窗口
【发布时间】:2020-06-06 14:01:00
【问题描述】:

我有一个 Angular 8 的电子 js 应用程序。如果用户执行命令 control+w,它会自动关闭窗口。我尝试查看BrowserWindow Api,但是,我找不到阻止这种行为发生的标志或处理程序。

【问题讨论】:

  • 如果网站可以阻止用户关闭它们,那将是一个主要的可用性问题。即使它只是他们阻止的组合键,因为某些用户实际上使用这些组合键而不是鼠标。桌面应用程序也是如此。
  • 关于可用性的观点很重要。我想要的可用性类似于 VSCode,因为它有选项卡,我希望用户能够使用 control+w 关闭选项卡,并且当它到达最后一个时它会关闭窗口。
  • 列出的相关问题之一是:stackoverflow.com/questions/59392806/…。你能检查一下那里列出的解决方案是否真的有效吗?

标签: angular electron


【解决方案1】:

您需要更改或删除默认具有此快捷方式Window -> Close Ctrl+W 的默认应用程序菜单

Menu.setApplicationMenu(null) // remove default application menu

// or

browserWindow.setMenu(null) // just remove default menu of a specific window and not all windows

这应该可以解决问题

相关文档:

【讨论】:

    【解决方案2】:

    删除默认应用程序菜单会删除其他有用的快捷方式,所以我建议专门针对 Ctrl + W,这可以使用 globalShortcut 完成:

    const { app, globalShortcut } = require("electron");
    
    app.on("ready", () => {
        globalShortcut.register("CommandOrControl+W", () => {
            //stuff here
        });
    });
    

    更多信息here

    【讨论】:

    • 其他菜单和浏览器方法对我不起作用(至少在本地调试中),结合 app.dock.hide() 尝试这个方法,顺便说一句,缺少 ')' 关闭 register()功能。
    • 虽然覆盖快捷方式有效,但我无法阻止默认行为,最终使用此解决方案stackoverflow.com/a/35782702/970375
    • 此解决方案的问题在于它会阻止所有应用程序的此快捷方式,而不仅仅是您的应用程序。此外,您的应用程序菜单中仍然会有一个菜单项,显示它有一个加速键“Ctrl+W”。您可以编辑您的应用程序菜单以禁用和隐藏该菜单项(同时保留其他有用的菜单项),imo 是更好的解决方案。
    【解决方案3】:

    对于它可能关心的人,另一种解决方案可以是:

    app.on("ready", () => {
      app.on("browser-window-focus", () => {
        globalShortcut.registerAll(
          ["CommandOrControl+R"],
          () => {
            return;
          }
        );
      });
      app.on("browser-window-blur", () => {
        globalShortcut.unregisterAll();
      });
    });
    

    这样我们可以防止在其他应用程序中阻塞 globalShortcuts。 更多关于电子加速器的信息:https://www.electronjs.org/docs/api/accelerator

    【讨论】:

      猜你喜欢
      • 2015-05-05
      • 2016-07-11
      • 2010-09-24
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多