当前位置: 首页 > wzjs >正文

怎样建立网站挣钱网络服务许可证

怎样建立网站挣钱,网络服务许可证,哈尔滨铁路局建设网站,wordpress 关闭网站在 VS Code Webview 的 HTML 中,不能直接调用 VS Code 的 API(如 vscode.window.showInformationMessage),但可以通过 acquireVsCodeApi() 获取一个受限的 vscode 对象,用于与插件主程序通信。以下是详细说明和示例&am…

在 VS Code Webview 的 HTML 中,不能直接调用 VS Code 的 API(如 vscode.window.showInformationMessage),但可以通过 acquireVsCodeApi() 获取一个受限的 vscode 对象,用于与插件主程序通信。以下是详细说明和示例:

一、Webview 中可用的 VS Code 方法

通过 const vscode = acquireVsCodeApi(); 获取的 vscode 对象支持以下操作:

1. 消息传递
  • vscode.postMessage(message)
    向插件主程序发送消息,触发主程序执行操作(如显示弹窗、修改文件等)。

    vscode.postMessage({ command: "showMessage", text: "Hello from Webview" });
    
  • window.addEventListener('message', callback)
    接收主程序返回的消息(如操作结果、数据更新等)。

    window.addEventListener('message', (event) => {if (event.data.command === "operationResult") {console.log("收到主程序响应:", event.data.data);}
    });
    
2. 状态管理
  • vscode.getState()
    获取 Webview 上一次保存的状态(如表单数据、滚动位置等)。

    const savedState = vscode.getState() || { formData: {} };
    
  • vscode.setState(newState)
    保存 Webview 的状态,刷新或重新打开时恢复。

    vscode.setState({ formData: currentFormValues });
    
3. 环境信息
  • vscode.environment(只读)
    包含 VS Code 的环境信息,如版本号、是否为调试模式等。
    console.log("VS Code 版本:", vscode.environment.appVersion);
    

二、完整交互流程示例

1. Webview HTML(发送消息)
<!DOCTYPE html>
<html>
<body><button id="showMessageBtn">显示消息</button><script>const vscode = acquireVsCodeApi();// 发送消息到主程序document.getElementById("showMessageBtn").addEventListener("click", () => {vscode.postMessage({ command: "showMessage", text: "点击了按钮!" });});// 接收主程序响应window.addEventListener("message", (event) => {if (event.data.command === "messageShown") {alert("主程序已显示消息!");}});</script>
</body>
</html>
2. 插件主程序(处理消息)
import * as vscode from "vscode";export function activate(context: vscode.ExtensionContext) {// 创建 Webview 面板const panel = vscode.window.createWebviewPanel("myWebview","Webview 示例",vscode.ViewColumn.One);// 加载 HTML 内容panel.webview.html = getWebviewContent();// 监听 Webview 消息panel.webview.onDidReceiveMessage((message: { command: string; text?: string }) => {switch (message.command) {case "showMessage":// 显示 VS Code 消息vscode.window.showInformationMessage(message.text || "默认消息");// 发送确认消息回 Webviewpanel.webview.postMessage({ command: "messageShown" });break;}},undefined,context.subscriptions);
}function getWebviewContent() {return `<!DOCTYPE html><html><body><button id="showMessageBtn">显示消息</button><script>const vscode = acquireVsCodeApi();document.getElementById("showMessageBtn").addEventListener("click", () => {vscode.postMessage({ command: "showMessage", text: "点击了按钮!" });});window.addEventListener("message", (event) => {if (event.data.command === "messageShown") {alert("主程序已显示消息!");}});</script></body></html>`;
}

三、关键限制

  1. 安全隔离
    Webview 的 JavaScript 环境与插件主程序隔离,不能直接调用 VS Code API,必须通过消息传递。

  2. 可用 API 受限
    仅能通过 acquireVsCodeApi() 获取的 vscode 对象进行通信,无法直接使用 vscode.windowvscode.workspace 等模块。

  3. 性能优化
    频繁的消息传递可能影响性能,建议批量处理或使用状态管理。

四、常见用例

场景实现方式
显示 VS Code 消息Webview 发送 postMessage,主程序调用 vscode.window.showInformationMessage
获取当前文件路径主程序通过 vscode.window.activeTextEditor?.document.uri 获取,再发送回 Webview
执行 VS Code 命令主程序调用 vscode.commands.executeCommand("命令ID")
修改用户配置主程序调用 vscode.workspace.getConfiguration().update()

通过消息传递机制,Webview 可以安全地与 VS Code 主程序交互,实现丰富的自定义功能。


文章转载自:

http://F6CZiwGZ.sjcpr.cn
http://G4Xn9BQQ.sjcpr.cn
http://ebzwpx7m.sjcpr.cn
http://4qWLZ5eE.sjcpr.cn
http://4y8YZBOT.sjcpr.cn
http://XQp7yX0i.sjcpr.cn
http://jhslX483.sjcpr.cn
http://6xf00yog.sjcpr.cn
http://QgFe5NPc.sjcpr.cn
http://sE6ijn6v.sjcpr.cn
http://GVWEtiGs.sjcpr.cn
http://cU5zZXSn.sjcpr.cn
http://yXpxz2XK.sjcpr.cn
http://x0eJYIrs.sjcpr.cn
http://DlQ5Nj6k.sjcpr.cn
http://2k6uxzip.sjcpr.cn
http://FvcdlhwO.sjcpr.cn
http://LugWZWbO.sjcpr.cn
http://jOGlTEHV.sjcpr.cn
http://kf4nb0Ns.sjcpr.cn
http://sNDCZu6H.sjcpr.cn
http://LErT6hhs.sjcpr.cn
http://SzLa1Vuz.sjcpr.cn
http://nUzNyGFK.sjcpr.cn
http://IQYqWKO0.sjcpr.cn
http://KgbSRzdL.sjcpr.cn
http://TcHAHgYd.sjcpr.cn
http://3g16aLQS.sjcpr.cn
http://fDzEJaXn.sjcpr.cn
http://XWnx1ZPI.sjcpr.cn
http://www.dtcms.com/wzjs/766713.html

相关文章:

  • 商务网站建设的组成包括整合营销是什么
  • 横琴建设局网站怎样做网站宣传自己的宾馆
  • 介绍营销的网站网站建设全包专业定制
  • 织梦网站维护php 网站开发框架
  • 网站有可能搜不到吗网站建设公司宣传册
  • 网站制作团队分工室内设计软件手机版
  • 中国智慧团建网站大连网站建设选高和科技
  • 子网站建设经验汇报长春制作网站企业
  • 如何设计一个好网站react怎么做pc网站
  • 温州网站建设风格磁力搜索器 磁力猫在线
  • 网站管理 地址:网站开发与桌面应用开发
  • 京伦科技做的网站如何seo关键词排名软件
  • 网站建设需要那些人做网站最下面写什么软件
  • 订餐网站怎么做一个虚拟主机做2个网站
  • 网站前台架构江西商城网站建设
  • 岳阳网站建设哪里有wordpress个人下载网站
  • 北京建设大学官方网站雅虎搜索引擎入口
  • 哪里购买网站广告位appui界面设计
  • 网站关键词排名系统网站续费公司
  • 房地产公司网站 源码网站策划与网上营销
  • 网站建设公司的客户自己可以免费做网站吗
  • 网站建设 诺德中心做网站工作条件
  • 怀柔网站建设环球资源网站网址
  • 详细论述制作网站的步骤嵌入式开发工程师是干嘛的
  • wordpress植物网站wordpress文章后添加除非
  • 企业网站ppt怎么做移动应用开发是什么
  • 免费网站后台管理系统用Off做网站
  • 网站建设文献综述刚接触网站建设有哪些问题
  • 安徽建设厅官网拼多多seo搜索优化
  • 网站建设方案策划书前言网站限时抢购怎么做