electron-vue实现自动更新版本的另一类方法

首次使用electron-vue实现桌面应用,其中遇到n多的坑,一次次的从坑中爬起再跌下再爬起。。。

1.实现版本的自动更新:

首先想到的是autoUpdater,就按着百度的方法(完全没有问题)比葫芦画瓢的实现了,但由于打包的是合在一起打包的,有些参数可能没有,另外就是我们的下载的连接是按照登录的服务器地址(也就是不是固定的地址),诸多不便,于是放弃这种方式;

于是乎,便使用以下方法

// 在主进程中.

const {BrowserWindow} = require('electron')
let win = new BrowserWindow() win.webContents.session.on('will-download', (event, item, webContents) => {
// 设置保存路径,使Electron不提示保存对话框。
item.setSavePath('C:\\Users\\' + require('os').userInfo().username + '\\Downloads\\' + item.getFilename())
item.on('updated', (event, state) => {
if (state === 'interrupted') { console.log('Download is interrupted but can be resumed') }
else if (state === 'progressing') {
if (item.isPaused()) { console.log('Download is paused') }
else { console.log(`Received bytes: ${item.getReceivedBytes()}`) } } })
item.once('done', (event, state) => {
if (state === 'completed') { console.log('Download successfully') }
else { console.log(`Download failed: ${state}`) } }) })

 

首先下载服务器上的新版本,然后执行 shell.openItem('下载保存的路径')

按道理来讲,就能打开刚才下载的新版本去安装了,然并卵。。。。

下载的链接如果是"http://"+ip或者“https://”+域名都是没有问题,但就是这个“https://”+ip的事情比较多,那个什么安全证书的问题,总是走下载中断那一步,我寻寻觅觅一大圈还是一脸懵逼,突然一个同事提醒我了是这么回事儿,我才恍然大悟,那就找方法解决呗,脑残的我又跑偏了,我只在乎https和http的区别了,殊不知,electron中,人家有那种专门去掉限制的参数,苍天呐,这一天下来,我都干了点啥。。。。

不说了,贴方法喽方法

electron-vue实现自动更新版本的另一类方法_第1张图片

 

 

好了老铁们,终于over了

你可能感兴趣的:(前端各种坑,electron,桌面应用,自动更新版本,下载不成功)