diff --git a/VS Code Extension/erikraft-drop/src/extension.js b/VS Code Extension/erikraft-drop/src/extension.js index 20910f2..a6535a4 100644 --- a/VS Code Extension/erikraft-drop/src/extension.js +++ b/VS Code Extension/erikraft-drop/src/extension.js @@ -14,7 +14,9 @@ class ErikrafTDropViewProvider { this.extensionPath = extensionPath; } - resolveWebviewView(webviewView) { + resolveWebviewView(webviewView, context, token) { + this.webviewView = webviewView; + webviewView.webview.options = { enableScripts: true, localResourceRoots: [ @@ -23,27 +25,19 @@ class ErikrafTDropViewProvider { ] }; - webviewView.webview.html = this.getWebviewContent(webviewView.webview); - // Listen for messages from the webview - handleWebviewMessages(webviewView.webview); - } -} - -// Função para lidar com mensagens do webview -function handleWebviewMessages(webview) { - webview.onDidReceiveMessage(async (message) => { - if (message && message.type && message.url) { - if (message.type === 'external-link' || message.type === 'download') { - try { - await vscode.env.openExternal(vscode.Uri.parse(message.url)); - } catch (err) { - vscode.window.showErrorMessage('Não foi possível abrir o link externo: ' + message.url); + // Adicionar listener para mensagens do webview + webviewView.webview.onDidReceiveMessage( + message => { + if (message.command === 'openExternal') { + vscode.env.openExternal(vscode.Uri.parse(message.url)); } - } - } - }); -} + }, + null, + context.subscriptions + ); + webviewView.webview.html = this.getWebviewContent(webviewView.webview); + } getWebviewContent(webview) { return ` @@ -51,7 +45,7 @@ function handleWebviewMessages(webview) {
- +