Hãy bắt đầu với trường hợp đơn giản và sau đó xây dựng giải pháp của chúng tôi để xử lý tốt hơn một số trường hợp cạnh.
Trường hợp đơn giản nhất có thể là hiển thị cửa sổ đã mở bất cứ khi nào phím tắt chung mà chúng tôi đăng ký được nhấn.
const path = require('path');
const { app, BrowserWindow, globalShortcut } = require('electron');
let mainWindow = null;
app.on('ready',() => {
mainWindow = new BrowserWindow();
mainWindow.loadURL(path.join(__dirname, 'index.html'));
const shortcut = globalShortcut.register('Control+Space',() => {
mainWindow.show();
});
if (!shortcut) { console.log('Registration failed.'); }
});
Mã này có một số vấn đề. Tin tốt là nó vẫn hoạt động nếu cửa sổ đã được thu nhỏ. Tin xấu là nó sẽ không hoạt động nếu cửa sổ đã bị đóng. Điều này là do việc đóng cửa sổ cuối cùng thoát khỏi ứng dụng. Rất tiếc. (Thành thật mà nói, tôi hơi ngạc nhiên bởi điều này - nhưng đó là những gì sẽ xảy ra. Vì vậy, chúng ta hãy đi với nó.)
Hãy dừng điều đó xảy ra.
app.on('window-all-closed', (event) => {
event.preventDefault();
});
OK, ứng dụng của chúng tôi không thoát, nó sẽ bị treo.
Uncaught Exception:
Error: Object has been destroyed
Được rồi, được. Điều này là do cửa sổ bị phá hủy khi nó đóng. Vì vậy, chúng ta hãy không đóng nó. Hãy giấu nó đi, phải không? Trong app.on('ready',() => {…})
, thêm dòng sau:
kết quả
mainWindow.on('close', (event) => {
event.preventDefault();
mainWindow.hide();
});
Sự kết thúc trông như thế này:
const path = require('path');
const { app, BrowserWindow, globalShortcut } = require('electron');
let mainWindow = null;
app.on('ready',() => {
mainWindow = new BrowserWindow();
mainWindow.loadURL(path.join(__dirname, 'index.html'));
const shortcut = globalShortcut.register('Control+Space',() => {
mainWindow.show();
});
if (!shortcut) { console.log('Registration failed.'); }
mainWindow.on('close', (event) => {
event.preventDefault();
mainWindow.hide();
});
});
app.on('window-all-closed', (event) => {
event.preventDefault();
});
Và với điều đó, bạn nên có các chức năng cơ bản tại chỗ. Bạn nhấn phím tắt toàn cục và cửa sổ xuất hiện. Loại bỏ nó và bấm phím và xem nó xuất hiện trở lại.