mirror of
https://github.com/rubickCenter/rubick
synced 2025-12-29 22:39:45 +08:00
feat: 支持自动更新
This commit is contained in:
48
src/main/common/autoUpdate.js
Normal file
48
src/main/common/autoUpdate.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import axios from 'axios';
|
||||
import { lt } from 'semver';
|
||||
import { dialog, shell } from 'electron';
|
||||
import pkg from '../../../package.json';
|
||||
const os = require('os');
|
||||
|
||||
const version = pkg.version;
|
||||
const releaseUrl = 'http://rubick-server.qa.91jkys.com/release/query';
|
||||
|
||||
export async function autoUpdate() {
|
||||
let res;
|
||||
try {
|
||||
res = await axios.get(releaseUrl);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (res) {
|
||||
const latest = res.data.result[0];
|
||||
const result = compareVersion2Update(version, latest.version);
|
||||
if (result) {
|
||||
const res = await dialog.showMessageBox({
|
||||
type: 'info',
|
||||
title: '发现新版本',
|
||||
buttons: ['Yes', 'No'],
|
||||
message: `发现新版本${latest.version},更新了很多功能,${latest.msg}, 是否去下载最新的版本?`,
|
||||
checkboxLabel: '以后不再提醒',
|
||||
checkboxChecked: false
|
||||
});
|
||||
if (res.response === 0) {
|
||||
if (os.type() === 'Windows_NT') {
|
||||
// windows
|
||||
await shell.openExternal(latest.downloadUrl);
|
||||
} else if (os.type() === 'Darwin') {
|
||||
// mac
|
||||
await shell.openExternal(latest.downloadUrl);
|
||||
} else {
|
||||
// 不支持提示
|
||||
dialog.showErrorBox('提示', '系统不支持');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if true -> update else return false
|
||||
const compareVersion2Update = (current, latest) => {
|
||||
return lt(current, latest);
|
||||
};
|
||||
@@ -1,6 +1,7 @@
|
||||
import { app, BrowserWindow, protocol } from 'electron'
|
||||
import '../renderer/store'
|
||||
import init from './common/common';
|
||||
import {autoUpdate} from './common/autoUpdate';
|
||||
import createTray from './tray';
|
||||
const {capture} = require("./browsers")();
|
||||
/**
|
||||
@@ -55,6 +56,7 @@ function createWindow () {
|
||||
app.on('ready', () => {
|
||||
createWindow()
|
||||
createTray(mainWindow);
|
||||
autoUpdate();
|
||||
})
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
|
||||
@@ -4,7 +4,7 @@ import pkg from '../../package.json';
|
||||
|
||||
function createTray(window) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const appIcon = new Tray(path.join(__static, './rocket-t.png'));
|
||||
const appIcon = new Tray(path.join(__static, './rocket.png'));
|
||||
const contextMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
id: 3,
|
||||
|
||||
Reference in New Issue
Block a user