VUE+ELECTRON避免重复打开同一窗口

当第二个实例被执行并且调用 app.requestSingleInstanceLock() 时,这个事件将在你的应用程序的首个实例中触发

const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
    app.quit()
} else {
    app.on('second-instance', (event, commandLine, workingDirectory) => {
        // 当运行第二个实例时,将会聚焦到mainWindow这个窗口
        if (win) {
            if (win.isMinimized()) win.restore()
            win.focus()
            win.show()
        }
    })
} 
function createWindow() {
    if (!gotTheLock) {
        return;
    }
    win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            devTools: false,//是否开启调试
            nodeIntegration: true,//是否启用Node integration
            contextIsolation: false,//是否在独立 JavaScript 环境中运行 Electron API和指定的preload 脚本
        }
    })
 
    if (process.env.WEBPACK_DEV_SERVER_URL) {
        win.loadURL(process.env.WEBPACK_DEV_SERVER_URL)
        if (!process.env.IS_TEST) win.webContents.openDevTools()
    } else {
        createProtocol('app')
        win.loadURL('app://./index.html')
    }
 
    win.on('closed', () => {
        win = null
    })
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容