Aᴄʜ*_*ᴀɪʟ 8 keyboard-shortcuts reload menuitem node.js electron
我想Command+R在电子应用程序中实现绑定到键盘快捷键的自定义操作.
我克隆了electron-quick-startrepo,并将main.js文件更改为:
const { app, Menu, MenuItem, BrowserWindow } = require('electron')
let mainWindow
let template = [
{ label: app.getName(), submenu: [
{ label: 'custom action 1', accelerator: 'Command+R', click() { console.log('go!') } },
{ label: 'custom action 2', accelerator: 'Shift+Command+R', click() { console.log('go!') } },
{ type: 'separator' },
{ role: 'quit' }
] }
]
const menu = Menu.buildFromTemplate(template)
function createWindow () {
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadURL(`file://${__dirname}/index.html`)
mainWindow.webContents.openDevTools()
mainWindow.on('closed', function () { mainWindow = null })
// Set application menu
Menu.setApplicationMenu(menu)
}
app.on('ready', createWindow)
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow()
}
})
Run Code Online (Sandbox Code Playgroud)
该应用程序运行时,该菜单有效npm start.但是当您按⌘R页面重新加载而不是执行模板中定义的自定义快捷方式时.
我在这里缺少什么?
JSB*_*dia 15
这是简单的解决方案::
const { globalShortcut } = require('electron');
Run Code Online (Sandbox Code Playgroud)
app.on('browser-window-focus', function () {
globalShortcut.register("CommandOrControl+R", () => {
console.log("CommandOrControl+R is pressed: Shortcut Disabled");
});
globalShortcut.register("F5", () => {
console.log("F5 is pressed: Shortcut Disabled");
});
});
Run Code Online (Sandbox Code Playgroud)
app.on('browser-window-blur', function () {
globalShortcut.unregister('CommandOrControl+R');
globalShortcut.unregister('F5');
});
Run Code Online (Sandbox Code Playgroud)
小智 -1
!isDev &&
app.whenReady().then(() => {
globalShortcut.register("CommandOrControl+R", () => {
console.log("CommandOrControl+R is pressed: Shortcut Disabled");
});
});
Run Code Online (Sandbox Code Playgroud)
这是上述代码片段的官方文档的链接。 根据开发或生产,您可以使用依赖项“electron-is-Dev”动态禁用或启用快捷方式
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |