feat: 添加代理功能和 realIP配置功能

This commit is contained in:
alger
2025-01-03 23:53:07 +08:00
parent 46f8067577
commit d7e94a342b
5 changed files with 268 additions and 14 deletions

View File

@@ -1,11 +1,43 @@
import { BrowserWindow, shell, ipcMain, app } from 'electron';
import { BrowserWindow, shell, ipcMain, app, session } from 'electron';
import { is } from '@electron-toolkit/utils';
import { join } from 'path';
import Store from 'electron-store';
const store = new Store();
/**
* 初始化代理设置
*/
function initializeProxy() {
const defaultConfig = {
enable: false,
protocol: 'http',
host: '127.0.0.1',
port: 7890
};
const proxyConfig = store.get('set.proxyConfig', defaultConfig) as {
enable: boolean;
protocol: string;
host: string;
port: number;
};
if (proxyConfig?.enable) {
const proxyRules = `${proxyConfig.protocol}://${proxyConfig.host}:${proxyConfig.port}`;
session.defaultSession.setProxy({ proxyRules });
} else {
session.defaultSession.setProxy({ proxyRules: '' });
}
}
/**
* 初始化窗口管理相关的IPC监听
*/
export function initializeWindowManager() {
// 初始化代理设置
initializeProxy();
ipcMain.on('minimize-window', (event) => {
const win = BrowserWindow.fromWebContents(event.sender);
if (win) {
@@ -38,6 +70,11 @@ export function initializeWindowManager() {
win.hide();
}
});
// 监听代理设置变化
store.onDidChange('set.proxyConfig', () => {
initializeProxy();
});
}
/**