From 723feaa8bb4404f5ac8e9452c37d38509ad25705 Mon Sep 17 00:00:00 2001 From: Hunlongyu Date: Sat, 24 Oct 2020 13:18:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A5=BD=20=E5=88=A0=E9=99=A4=E9=94=99?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/background.js | 13 +++++++++++++ src/components/Setting.vue | 15 ++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/background.js b/src/background.js index dcf899f..7d71c7e 100644 --- a/src/background.js +++ b/src/background.js @@ -3,6 +3,7 @@ import './lib/site/server' import { app, protocol, BrowserWindow, globalShortcut, ipcMain } from 'electron' import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' +import { autoUpdater } from 'electron-updater' import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' const isDevelopment = process.env.NODE_ENV !== 'production' @@ -14,6 +15,8 @@ let mini protocol.registerSchemesAsPrivileged([{ scheme: 'app', privileges: { secure: true, standard: true } }]) +autoUpdater.autoDownload = false + function createWindow () { win = new BrowserWindow({ width: 1080, @@ -97,6 +100,16 @@ ipcMain.on('win', () => { win.webContents.send('miniClosed') }) +ipcMain.on('update', async () => { + const checkForUpdates = await autoUpdater.checkForUpdates() + win.webContents.send('update-replay-check', checkForUpdates) + const res = await autoUpdater.downloadUpdate() + win.webContents.send('update-replay-download', res) + autoUpdater.on('update-downloaded', () => { + win.webContents.send('update-replay-downloaded', 'downloaded') + }) +}) + const gotTheLock = app.requestSingleInstanceLock() if (!gotTheLock) { app.quit() diff --git a/src/components/Setting.vue b/src/components/Setting.vue index 7338628..6f73499 100644 --- a/src/components/Setting.vue +++ b/src/components/Setting.vue @@ -7,6 +7,7 @@ Github 当前版本v{{pkg.version}} 反馈 最新版本v{{latestVersion}} + 检查更新
视图
@@ -143,7 +144,7 @@ import { mapMutations } from 'vuex' import pkg from '../../package.json' import { setting, sites, shortcut } from '../lib/dexie' import { sites as defaultSites } from '../lib/dexie/initData' -import { shell, clipboard, remote } from 'electron' +import { shell, clipboard, remote, ipcRenderer } from 'electron' import db from '../lib/dexie/dexie' const _hmt = window._hmt export default { @@ -372,6 +373,18 @@ export default { e.preventDefault() menu.popup(remote.getCurrentWindow()) }) + }, + checkUpdate () { + ipcRenderer.send('update') + ipcRenderer.on('update-replay-check', (e, res) => { + console.log(res, 'update-replay-check') + }) + ipcRenderer.on('update-replay-download', (e, res) => { + console.log(res, 'update-replay-download') + }) + ipcRenderer.on('update-replay-downloaded', (e, res) => { + console.log(res, 'update-replay-downloaded') + }) } }, created () {