VUE用electron打包怎么限制只启动一个应用

VUE用electron打包怎么限制只启动一个应用

阅读 3.7k
3 个回答
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) { 
    app.quit() 
} 
else { 
    app.on('second-instance', (event, commandLine, workingDirectory) => {
        if (mainWindow) {
            if (mainWindow.isMinimized()) mainWindow.restore()
            mainWindow.focus()
        }
    })
    app.on('ready', () => {  /.../ }) 
}

你好,我遇到了一个问题,我想限制当前应用只打开一个,但是,我同时在程序中使用了,自动更新,但是自动更新安装的时候会出现问题,更新下载之后的程序无法正常安装。这个问题你遇到了吗?应该如何解决。。。

借楼主这里直接评论一下 不墨迹了直接上代码 这里只是一个实现思路 然后你在结合你的想要实现的方案 思路是一样的

let forceQuit =  process.platform  !==  'darwin';//声明一个变量 这里需要判断一下是mac端 因为windows mac处理不一样 如果你那边只是开发一端的话就无所谓了 这里我举的例子是两端都要兼容
brower.on('close', (e) => {
    //阻止默认事件的时候的时候判断意思是只有mac下才阻止
    if (!forceQuit) {
        e.preventDefault();
    }
});
  • 下面是自动更新部分 只有逻辑部分
autoUpdater.on('update-available', () => {
    //当发现一个可用更新的时候触发,设置变量为true
    forceQuit =  true;
    console.log('发现可用更新-自动下载');
})
// 下载完成后关闭软件安装
autoUpdater.on('update-downloaded', () => {
    //这里因为上面已经在发现新版本的时候设置 forceQuit为true所以现在是不会阻止默认事件的,这个时候杀掉软件重新打开就是最新版本了
    autoUpdater.quitAndInstall();
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题