前端发送消息
this.$vscode.postMsg({
type: "establish",
projectName: this.projectName,
path: this.savePath,
APPID:this.APPID,
width: resolveingArr[0] || this.customResolveX,
height: resolveingArr[1] || this.customResolveY,
APILevel: this.APILevel,
pixelTypeValue: this.pixelTypeValue,
});
插件向前端发送消息
private postMessage(panel: vscode.WebviewPanel, msg: object) {
panel.webview.postMessage(msg);
}
插件监听前端的消息
public didReceiveMessage(
contenxt: vscode.ExtensionContext,
panel: vscode.WebviewPanel
) {
return panel.webview.onDidReceiveMessage(
async (message) => {
switch (message.type) {
case "establish":
initProject(panel, message);
break;
}
},
undefined,
contenxt.subscriptions
);
}
前端监听插件的消息
this.$vscode.receiveMsg((event)=>{
if(event.data.type === 'setLanguage'){
this.$i18n.locale = event.data.lang.toLocaleUpperCase()
if(event.data.colorTheme.kind === 2){
this.theme = 'dark-theme'
}else if(event.data.colorTheme.kind === 1){
this.theme = 'light-theme'
}
this.apiData = event.data.apiLevel
}else if(event.data.type === 'createFail'){
this.$message.error(this.$t("message.Directory already exists"));
}
})