Я пытаюсь добавить глобальную ссылку на свое приложение Electron, которое будет отображать/скрывать его. Мое приложение - это меню, построенное с использованием maxogden/menubar и React.Электронный глобальный ярлык для переключения show/hide of menubar
У меня есть следующий код. Я оставил пару битов только для краткости, но именно так я установил глобальные ярлыки.
Я думаю, что важно отметить один из советов на maxogden/menubar
Readme
тоже:
Использование mb.on («после того, как создать-окно», обратного вызова) для запуска вещи после того, как вы загрузили приложение
const { globalShortcut } = require('electron');
const keyboardShortcuts = {
open: 'CommandOrControl+Shift+g',
close: 'CommandOrControl+Shift+g'
}
menu.on('after-create-window',() => {
globalShortcut.register(keyboardShortcuts.open,() => {
menu.window.show();
});
});
menu.on('after-show',() => {
globalShortcut.unregister(keyboardShortcuts.open);
globalShortcut.register(keyboardShortcuts.close,() => {
menu.window.hide();
});
});
menu.on('focus-lost',() => {
globalShortcut.unregister(keyboardShortcuts.close);
globalShortcut.register(keyboardShortcuts.open,() => {
menu.window.show();
});
});
После того, как строка меню была первая была открыта, мой ярлык зарегистрирован и будет работать, чтобы показать приложение. Однако код, который я реализовал в unregister
ярлык, и перерегистрировать его, чтобы скрыть приложение (при показе), похоже, не работает.
Я не уверен, что мой код для перерегистрации ярлыка настраивается в правильном обработчике событий i.e after-show
и focus-lost
. Я чувствую, что эти обработчики событий, над которыми я работаю, напрямую связаны с моим menu
, а не с menu.window
. Это объясняет, почему перерегистрация ярлыка не происходит, но я не уверен.
Кто-нибудь есть идеи, как бы я разумно настроил глобальный ярлык, чтобы открыть/закрыть мое меню меню?