vscode插件与webview相互通信


title: vscode插件与webview相互通信
date: 2019-04-03 13:37:37
tags: “vscode”

1.webview发送消息给插件

插件js和ts都可以(webview需要引入vscode,可以通过)
然后test-webview.js里面加入const testMode = false; const vscode = testMode ? {} : acquireVsCodeApi();

webview发送消息

function openHint() {
			vscode.postMessage({
				command: 'openHint',
				text: '试着输入 helloword '
			})

		}

		function openNext() {
			vscode.postMessage({
				command: 'openNext',
				text: '准备好进入下一关了么? '
			})

		}

		function openCheck() {
			vscode.postMessage({
				command: 'openCheck',
				text: '恭喜你,回答正确!!! '
			})

		}

插件接收消息并处理

panel.webview.onDidReceiveMessage(message => {
			switch (message.command) {

				case 'openHint':
					vscode.window.showInformationMessage(message.text, {
						modal: true
					});
					break;
				case 'openNext':
					vscode.window.showInformationMessage(message.text, {
					 	modal: true
					});
					break;
				case 'openCheck':
					vscode.window.showInformationMessage(message.text, {
						modal: true
					});
					break;
				default:

			}

		}, undefined, context.subscriptions);

最终结果点击按钮在vscode中弹出框

2.插件发送消息给webview

在创建webview的时候,创建panel的时候利用panel发送消息

var panel;
panel.webview.postMessage({ command: value });

webview接收数据并处理

window.addEventListener('message', event => {
			const message = event.data;
			if (message.command == undefined || !message.command) {
				// console.log('---------------------------message:aaaa');
				return;
			}
			// console.log('---------------------------message:' + message.command);
			courseId = message.command;
			//下面可以作自己的处理

});
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值