From adc822729cdc13ab95555c8d883e2e9d5720b18f Mon Sep 17 00:00:00 2001 From: yinxue <2643126914@qq.com> Date: Tue, 11 Nov 2025 14:44:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=90=8E=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=88=B0=E7=94=A8=E6=88=B7=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/home.ts | 46 ++++++++++++++++++++++++++++++++++++---------- src/main.ts | 6 ------ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/home.ts b/src/home.ts index 8e32953..3ac017d 100644 --- a/src/home.ts +++ b/src/home.ts @@ -345,7 +345,7 @@ export default class DSHome { loginStatus.classList.add('logged-in'); statusText.textContent = '已登录'; usernameDisplay.textContent = username ? ' - 用户: ' + username : ''; - mainActionButton.textContent = '跳转到本地服务 (端口 80)'; + mainActionButton.textContent = '跳转到个人主页'; } else { loginStatus.classList.remove('logged-in'); loginStatus.classList.add('logged-out'); @@ -358,18 +358,44 @@ export default class DSHome { // 处理主要功能点击 - 修复消息发送格式 function handleMainAction() { if (isLoggedIn) { - // 已登录:跳转到本地80端口 - vscodePostMessage('showInformationNotification', {message: '跳转到本地服务 http://localhost:80'}); - // 修复:直接发送包含 url 的消息 - vscode.postMessage({ - command: 'openExternalUrl', - need_return: false, - url: 'http://localhost:80' - }); + // 已登录:跳转到 hostname/username + // 使用 async 函数处理异步操作 + (async () => { + try { + // 获取必要的用户信息 + const devstarDomainResult = await communicateVSCode('getDevstarDomain', {}); + const usernameResult = await communicateVSCode('getUsername', {}); + + const devstarDomain = devstarDomainResult.devstarDomain; + const username = usernameResult.username; + + if (devstarDomain && username) { + const targetUrl = \`\${devstarDomain}/\${username}\`; + + vscodePostMessage('showInformationNotification', { + message: \`跳转到 \${targetUrl}\` + }); + + vscode.postMessage({ + command: 'openExternalUrl', + need_return: false, + url: targetUrl + }); + } else { + vscodePostMessage('showErrorNotification', { + message: '无法获取域名或用户名信息' + }); + } + } catch (error) { + console.error('跳转失败:', error); + vscodePostMessage('showErrorNotification', { + message: '跳转失败,请重试' + }); + } + })(); } else { // 未登录:跳转到 DevStar 官网 vscodePostMessage('showInformationNotification', {message: '跳转到 DevStar 官网'}); - // 修复:直接发送包含 url 的消息 vscode.postMessage({ command: 'openExternalUrl', need_return: false, diff --git a/src/main.ts b/src/main.ts index e09ea05..ab83ac7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -84,9 +84,6 @@ export class DevStarExtension { this.dsHome.setUser(this.user) this.dsHome.setRemoteContainer(this.remoteContainer) - //防止进入HOME页面 - // vscode.commands.executeCommand('devstar.showHome'); - // 将devstar domain存在global state中 context.globalState.update('devstarDomain', devstarDomain) @@ -147,9 +144,6 @@ export class DevStarExtension { this.dsHome.setUser(this.user) this.dsHome.setRemoteContainer(this.remoteContainer) - //防止进入HOME页面 - // vscode.commands.executeCommand('devstar.showHome'); - // 将devstar domain存在global state中 context.globalState.update('devstarDomain', devstarDomain)