diff --git a/public/proxy.js b/public/proxy.js index fa611b9..4b068f2 100644 --- a/public/proxy.js +++ b/public/proxy.js @@ -290,6 +290,16 @@ async function checkAndSetInitialProxy() { // 确保默认配置存在 await ProxySettings.setDefaultConfigs(); + // 获取上次保存的代理配置 + const lastProxy = await proxyStore.getCurrentProxy(); + + if (lastProxy) { + // 如果有上次的配置,恢复它 + console.log('Restoring last proxy configuration:', lastProxy); + await handleSetProxyConfig(lastProxy, () => {}); + return; + } + // 获取当前的代理设置 const settings = await getProxySettings(); console.log('Current proxy settings:', settings); @@ -338,7 +348,7 @@ async function checkAndSetInitialProxy() { } } - // 如果没有检测到代理或已存在配置,则设置为系统代理 + // 如果没有之前的配置也没有检测到代理,才设置为系统代理 await handleSetProxyConfig({ id: 'system', name: '[系统代理]', @@ -346,9 +356,6 @@ async function checkAndSetInitialProxy() { enabled: true }, () => {}); - // 设置认证监听 - await ProxyAuth.setupAuthListener(); - } catch (error) { console.error('Error during initialization:', error); } @@ -356,10 +363,10 @@ async function checkAndSetInitialProxy() { // 修改 setupProxyHandlers 函数 export function setupProxyHandlers() { - // 设置代理错误处理和认证 + // 设置代理错误处理 ProxyAuth.setupErrorHandler(); + // 设置认证监听 ProxyAuth.setupAuthListener(); - // 设置代理请求监听器 setupProxyRequestListener(); diff --git a/public/proxy/content.js b/public/proxy/content.js index 48aaf07..3657af9 100644 --- a/public/proxy/content.js +++ b/public/proxy/content.js @@ -105,6 +105,7 @@ async function switchProxy(config) { }; } + // 发送配置更改消息 await sendMessageWithRetry({ action: ProxyActionType.SET_PROXY_CONFIG, config: proxyConfig diff --git a/public/proxy/proxy-settings.js b/public/proxy/proxy-settings.js index 932dd62..c2ccba4 100644 --- a/public/proxy/proxy-settings.js +++ b/public/proxy/proxy-settings.js @@ -43,9 +43,9 @@ export class ProxySettings { ]); } // 确保日志存储已初始化 - const logs = await proxyStore.getLogs(); // 使用 getLogs 而不是 getProxyLogs + const logs = await proxyStore.getLogs(); if (!logs || logs.length === 0) { - await proxyStore.clearLogs(); // 初始化日志存储 + await proxyStore.clearLogs(); } } } \ No newline at end of file