mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-04-28 02:47:22 +08:00
✨ feat: 应用单例模式
This commit is contained in:
+50
-32
@@ -47,44 +47,62 @@ function initialize() {
|
|||||||
initializeShortcuts(mainWindow);
|
initializeShortcuts(mainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 应用程序准备就绪时的处理
|
// 检查是否为第一个实例
|
||||||
app.whenReady().then(() => {
|
const isSingleInstance = app.requestSingleInstanceLock();
|
||||||
// 设置应用ID
|
|
||||||
electronApp.setAppUserModelId('com.alger.music');
|
|
||||||
|
|
||||||
// 监听窗口创建事件
|
if (!isSingleInstance) {
|
||||||
app.on('browser-window-created', (_, window) => {
|
app.quit();
|
||||||
optimizer.watchWindowShortcuts(window);
|
} else {
|
||||||
|
// 当第二个实例启动时,将焦点转移到第一个实例的窗口
|
||||||
|
app.on('second-instance', () => {
|
||||||
|
if (mainWindow) {
|
||||||
|
if (mainWindow.isMinimized()) {
|
||||||
|
mainWindow.restore();
|
||||||
|
}
|
||||||
|
mainWindow.show();
|
||||||
|
mainWindow.focus();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 初始化应用
|
// 应用程序准备就绪时的处理
|
||||||
initialize();
|
app.whenReady().then(() => {
|
||||||
|
// 设置应用ID
|
||||||
|
electronApp.setAppUserModelId('com.alger.music');
|
||||||
|
|
||||||
// macOS 激活应用时的处理
|
// 监听窗口创建事件
|
||||||
app.on('activate', () => {
|
app.on('browser-window-created', (_, window) => {
|
||||||
if (mainWindow === null) initialize();
|
optimizer.watchWindowShortcuts(window);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化应用
|
||||||
|
initialize();
|
||||||
|
|
||||||
|
// macOS 激活应用时的处理
|
||||||
|
app.on('activate', () => {
|
||||||
|
if (mainWindow === null) initialize();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
// 监听快捷键更新
|
// 监听快捷键更新
|
||||||
ipcMain.on('update-shortcuts', () => {
|
ipcMain.on('update-shortcuts', () => {
|
||||||
registerShortcuts(mainWindow);
|
registerShortcuts(mainWindow);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 所有窗口关闭时的处理
|
// 所有窗口关闭时的处理
|
||||||
app.on('window-all-closed', () => {
|
app.on('window-all-closed', () => {
|
||||||
if (process.platform !== 'darwin') {
|
if (process.platform !== 'darwin') {
|
||||||
app.quit();
|
app.quit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 重启应用
|
// 重启应用
|
||||||
ipcMain.on('restart', () => {
|
ipcMain.on('restart', () => {
|
||||||
app.relaunch();
|
app.relaunch();
|
||||||
app.exit(0);
|
app.exit(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 获取系统架构信息
|
// 获取系统架构信息
|
||||||
ipcMain.on('get-arch', (event) => {
|
ipcMain.on('get-arch', (event) => {
|
||||||
event.returnValue = process.arch;
|
event.returnValue = process.arch;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user