Solía electron
desarrollar mi propia herramienta de prueba de interfaz (Herramientas de publicación). Después de configurar globalShortcut
las teclas de acceso directo, descubrí que las teclas de acceso directo en la aplicación entraban en conflicto con las teclas de acceso directo del sistema global, lo que hacía que las teclas de acceso directo del sistema no funcionaran correctamente.
Configuración de teclas de acceso directo
export function initGlobalShortcut(mainWindow) {
globalShortcut.register('CommandOrControl+shift+r', () => {
app.relaunch()
app.exit()
})
globalShortcut.register('CommandOrControl+shift+delete', () => {
resetLocalData()
})
globalShortcut.register('F1', () => {
shell.openExternal('https://tiven.cn/p/4dc21784/')
})
globalShortcut.register('F2', () => {
shell.openExternal('https://tiven.cn/service/tools/post-tool')
})
globalShortcut.register('F5', () => {
mainWindow?.reload()
})
globalShortcut.register('CommandOrControl+r', () => {
mainWindow?.reload()
})
globalShortcut.register('CommandOrControl+q', () => {
app.exit()
})
globalShortcut.register('CommandOrControl+w', () => {
mainWindow?.hide()
mainWindow?.setSkipTaskbar(true)
})
globalShortcut.register('F11', () => {
// 是否全屏
if (mainWindow?.isFullScreen()) {
// mainWindow?.minimize();
mainWindow?.setFullScreen(false)
mainWindow?.setMenuBarVisibility(true)
} else {
mainWindow?.setFullScreen(true)
mainWindow?.setMenuBarVisibility(false)
}
})
globalShortcut.register('Esc', () => {
// 是否全屏
if (mainWindow?.isFullScreen()) {
// mainWindow?.minimize();
mainWindow?.setFullScreen(false)
mainWindow?.setMenuBarVisibility(true)
}
})
globalShortcut.register('CommandOrControl+F12', () => {
mainWindow?.webContents.openDevTools({
mode: 'detach' })
})
}
resolver conflictos
En términos generales, las teclas de método abreviado se inicializarán cuando ready-to-show
se abra la ventana principal. Por supuesto, la tecla de método abreviado para cerrar sesión también se puede blur
aplicar activamente cuando la aplicación pierda el foco ( ) para evitar conflictos con las teclas de método abreviado del sistema.
mainWindow.on('ready-to-show', () => {
mainWindow.show()
// 注册全局快捷键
initGlobalShortcut(mainWindow)
})
mainWindow.on('blur', () => {
// 失去焦点,注销快捷键
globalShortcut.unregisterAll()
})
Bienvenido a: Blog de Tianwen