小调整。
parent
1a34c1e575
commit
b8d5e1b3e2
|
@ -23,6 +23,8 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docmirror/dev-sidecar": "^1.8.8",
|
"@docmirror/dev-sidecar": "^1.8.8",
|
||||||
"@docmirror/mitmproxy": "^1.8.8",
|
"@docmirror/mitmproxy": "^1.8.8",
|
||||||
|
"@mihomo-party/sysproxy": "^2.0.4",
|
||||||
|
"@natmri/platform-napi": "0.0.7",
|
||||||
"adm-zip": "^0.5.5",
|
"adm-zip": "^0.5.5",
|
||||||
"ant-design-vue": "^1.6.5",
|
"ant-design-vue": "^1.6.5",
|
||||||
"compressing": "^1.5.1",
|
"compressing": "^1.5.1",
|
||||||
|
@ -43,9 +45,7 @@
|
||||||
"sass-loader": "^10.0.4",
|
"sass-loader": "^10.0.4",
|
||||||
"vue": "^2.6.11",
|
"vue": "^2.6.11",
|
||||||
"vue-json-editor-fix-cn": "^1.4.3",
|
"vue-json-editor-fix-cn": "^1.4.3",
|
||||||
"vue-router": "^3.4.8",
|
"vue-router": "^3.4.8"
|
||||||
"@natmri/platform-napi": "0.0.7",
|
|
||||||
"@mihomo-party/sysproxy": "^2.0.4"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "^4.5.0",
|
"@vue/cli-plugin-babel": "^4.5.0",
|
||||||
|
@ -54,9 +54,9 @@
|
||||||
"@vue/eslint-config-standard": "^5.1.2",
|
"@vue/eslint-config-standard": "^5.1.2",
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"electron": "^17.4.11",
|
"electron": "^17.4.11",
|
||||||
|
"electron-builder": "^23.0.3",
|
||||||
"electron-devtools-installer": "^3.1.0",
|
"electron-devtools-installer": "^3.1.0",
|
||||||
"electron-icon-builder": "^2.0.1",
|
"electron-icon-builder": "^2.0.1",
|
||||||
"electron-builder": "^23.0.3",
|
|
||||||
"eslint": "^6.7.2",
|
"eslint": "^6.7.2",
|
||||||
"eslint-plugin-import": "^2.20.2",
|
"eslint-plugin-import": "^2.20.2",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
|
|
|
@ -189,8 +189,9 @@ function createWindow (startHideWindow) {
|
||||||
|
|
||||||
Menu.setApplicationMenu(null)
|
Menu.setApplicationMenu(null)
|
||||||
win.setMenu(null)
|
win.setMenu(null)
|
||||||
|
|
||||||
// !!IMPORTANT
|
// !!IMPORTANT
|
||||||
if(isWindows) {
|
if (isWindows) {
|
||||||
powerMonitor.setupMainWindow(win)
|
powerMonitor.setupMainWindow(win)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,12 +451,13 @@ if (!isFirstInstance) {
|
||||||
}
|
}
|
||||||
|
|
||||||
powerMonitor.on('shutdown', async (e) => {
|
powerMonitor.on('shutdown', async (e) => {
|
||||||
if(e)
|
if (e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
}
|
||||||
log.info('系统关机,恢复代理设置')
|
log.info('系统关机,恢复代理设置')
|
||||||
if(isWindows) {
|
if (isWindows) {
|
||||||
const Sysproxy = require('@mihomo-party/sysproxy')
|
const Sysproxy = require('@mihomo-party/sysproxy')
|
||||||
Sysproxy.triggerManualProxy(false, "", 0, "")
|
Sysproxy.triggerManualProxy(false, '', 0, '')
|
||||||
}
|
}
|
||||||
await quit()
|
await quit()
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,36 +1,35 @@
|
||||||
import { powerMonitor as _powerMonitor, BrowserWindow } from 'electron'
|
import { powerMonitor as _powerMonitor } from 'electron'
|
||||||
import { setMainWindowHandle, insertWndProcHook, removeWndProcHook, releaseShutdownBlock, acquireShutdownBlock } from '@natmri/platform-napi';
|
import { setMainWindowHandle, insertWndProcHook, removeWndProcHook, releaseShutdownBlock, acquireShutdownBlock } from '@natmri/platform-napi'
|
||||||
|
|
||||||
class PowerMonitor {
|
class PowerMonitor {
|
||||||
constructor() {
|
constructor () {
|
||||||
this.setup = false
|
this.setup = false
|
||||||
this._listeners = []
|
this._listeners = []
|
||||||
this._shutdownCallback = null
|
this._shutdownCallback = null
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @param {BrowserWindow} window
|
* @param {BrowserWindow} window
|
||||||
*/
|
*/
|
||||||
setupMainWindow(window) {
|
setupMainWindow (window) {
|
||||||
if(!this.setup) {
|
if (!this.setup) {
|
||||||
setMainWindowHandle(window.getNativeWindowHandle().readBigInt64LE())
|
setMainWindowHandle(window.getNativeWindowHandle().readBigInt64LE())
|
||||||
this.setup = true
|
this.setup = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addListener(event, listener) {
|
addListener (event, listener) {
|
||||||
return this.on(event, listener)
|
return this.on(event, listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
removeListener(event, listener) {
|
removeListener (event, listener) {
|
||||||
return this.off(event, listener)
|
return this.off(event, listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
removeAllListeners(event) {
|
removeAllListeners (event) {
|
||||||
if(event === 'shutdown' && process.platform === 'win32') {
|
if (event === 'shutdown' && process.platform === 'win32') {
|
||||||
this._listeners = []
|
this._listeners = []
|
||||||
if(this._shutdownCallback) {
|
if (this._shutdownCallback) {
|
||||||
removeWndProcHook()
|
removeWndProcHook()
|
||||||
releaseShutdownBlock()
|
releaseShutdownBlock()
|
||||||
this._shutdownCallback = null
|
this._shutdownCallback = null
|
||||||
|
@ -40,15 +39,15 @@ class PowerMonitor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
on(event, listener) {
|
on (event, listener) {
|
||||||
if(event === 'shutdown' && process.platform === 'win32') {
|
if (event === 'shutdown' && process.platform === 'win32') {
|
||||||
if(!this._shutdownCallback) {
|
if (!this._shutdownCallback) {
|
||||||
this._shutdownCallback = async () => {
|
this._shutdownCallback = async () => {
|
||||||
await Promise.all(this._listeners.map((fn) => fn()))
|
await Promise.all(this._listeners.map((fn) => fn()))
|
||||||
releaseShutdownBlock()
|
releaseShutdownBlock()
|
||||||
}
|
}
|
||||||
insertWndProcHook(this._shutdownCallback)
|
insertWndProcHook(this._shutdownCallback)
|
||||||
acquireShutdownBlock("正在停止 DevSidecar 代理")
|
acquireShutdownBlock('正在停止 DevSidecar 代理')
|
||||||
}
|
}
|
||||||
this._listeners.push(listener)
|
this._listeners.push(listener)
|
||||||
} else {
|
} else {
|
||||||
|
@ -56,50 +55,50 @@ class PowerMonitor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
off(event, listener) {
|
off (event, listener) {
|
||||||
if(event === 'shutdown' && process.platform === 'win32') {
|
if (event === 'shutdown' && process.platform === 'win32') {
|
||||||
this._listeners = this._listeners.filter((fn) => fn !== listener)
|
this._listeners = this._listeners.filter((fn) => fn !== listener)
|
||||||
} else {
|
} else {
|
||||||
return _powerMonitor.off(event, listener)
|
return _powerMonitor.off(event, listener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
once(event, listener) {
|
once (event, listener) {
|
||||||
if(event === 'shutdown' && process.platform === 'win32') {
|
if (event === 'shutdown' && process.platform === 'win32') {
|
||||||
return this.on(event, listener)
|
return this.on(event, listener)
|
||||||
} else {
|
} else {
|
||||||
return _powerMonitor.once(event, listener)
|
return _powerMonitor.once(event, listener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emit(event, ...args) {
|
emit (event, ...args) {
|
||||||
return _powerMonitor.emit(event, ...args)
|
return _powerMonitor.emit(event, ...args)
|
||||||
}
|
}
|
||||||
|
|
||||||
eventNames() {
|
eventNames () {
|
||||||
return _powerMonitor.eventNames()
|
return _powerMonitor.eventNames()
|
||||||
}
|
}
|
||||||
|
|
||||||
getMaxListeners() {
|
getMaxListeners () {
|
||||||
return _powerMonitor.getMaxListeners()
|
return _powerMonitor.getMaxListeners()
|
||||||
}
|
}
|
||||||
|
|
||||||
listeners(event) {
|
listeners (event) {
|
||||||
return _powerMonitor.listeners(event)
|
return _powerMonitor.listeners(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
rawListeners(event) {
|
rawListeners (event) {
|
||||||
return _powerMonitor.rawListeners(event)
|
return _powerMonitor.rawListeners(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
listenerCount(event, listener) {
|
listenerCount (event, listener) {
|
||||||
return _powerMonitor.listenerCount(event, listener)
|
return _powerMonitor.listenerCount(event, listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
get onBatteryPower() {
|
get onBatteryPower () {
|
||||||
return _powerMonitor.onBatteryPower
|
return _powerMonitor.onBatteryPower
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,28 +106,28 @@ class PowerMonitor {
|
||||||
* @param {number} idleThreshold
|
* @param {number} idleThreshold
|
||||||
* @returns {'active'|'idle'|'locked'|'unknown'}
|
* @returns {'active'|'idle'|'locked'|'unknown'}
|
||||||
*/
|
*/
|
||||||
getSystemIdleState(idleThreshold) {
|
getSystemIdleState (idleThreshold) {
|
||||||
return _powerMonitor.getSystemIdleState(idleThreshold)
|
return _powerMonitor.getSystemIdleState(idleThreshold)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
getSystemIdleTime() {
|
getSystemIdleTime () {
|
||||||
return _powerMonitor.getSystemIdleTime()
|
return _powerMonitor.getSystemIdleTime()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {'unknown'|'nominal'|'fair'|'serious'|'critical'}
|
* @returns {'unknown'|'nominal'|'fair'|'serious'|'critical'}
|
||||||
*/
|
*/
|
||||||
getCurrentThermalState() {
|
getCurrentThermalState () {
|
||||||
return _powerMonitor.getCurrentThermalState()
|
return _powerMonitor.getCurrentThermalState()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
isOnBatteryPower() {
|
isOnBatteryPower () {
|
||||||
return _powerMonitor.isOnBatteryPower()
|
return _powerMonitor.isOnBatteryPower()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue