浅谈VSCode中Webview的使用方法


当前第2页 返回上一页

当VSCode重启后,就全都清空了,所以等于不能用。

  • 解决方法

调用VSCode的node环境来保存,这里需要让webview和VSCode插件环境进行通讯。

4号坑:Webview内容被释放

当Webview所在的tab pannel进入后台时(比如切到别的tab了),webview里的内容就会被清除,内存占用被释放。再次切回时会重新加载html内容。

  • 解决办法

启用retainContextWhenHidden

10.gif

消息通讯

1、插件发消息,Webview接收消息

  • 插件里的JS

1

panel.webview.postMessage({text: '你好,我是插件'});

  • Webview里的JS

1

2

3

window.addEventListener('message',function(e){

  console.log(e.data.text);

})

2、Webview发消息,插件接收消息

  • Webview里的JS

1

2

3

4

5

6

//初始化vscode插件api,没什么特别的功能,主要就是postMessage

var vscode = acquireVsCodeApi();

 

vscode.postMessage({

  text: '你好,我是Webview'

})

  • 插件里的JS

1

2

3

panel.webview.onDidReceiveMessage(function(data) {

  console.log(data.text);

});

比如前面提到的cookie和localstorage,就可以封装一下消息通讯,通过插件node环境来保存到本地

1

2

3

4

5

6

7

8

var vscode = acquireVsCodeApi();

function setLocalStorage(k,v){

  vscode.postMessage({

    command: 'setLocalStorage',

    key:k,

    value:v

  })

}

1

2

3

4

5

6

panel.webview.onDidReceiveMessage(function(data) {

  if(data.command == 'setLocalStorage'){

    //使用lowdb

    lowdb.set(data.key,data.value).write();

  }

});

官方Demo

  • https://github.com/microsoft/vscode-extension-samples/tree/master/webview-sample
  • https://github.com/microsoft/vscode-extension-samples/tree/master/webview-view-sample

更多编程相关知识,请访问:编程视频!!

以上就是浅谈VSCode中Webview的使用方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

23个常用的vsCode快捷键(动图演示)

vsCode设置代码特效

vsCode怎么编译php?

phpstrom 转 vsCode 折腾记录(配置分享)

vsCode python文件注释乱码怎么办

如何用vsCode进行单步调试

vsCode能做哪些编程

vsCode无法用jq怎么办

vsCode怎么使用虚拟环境

vsCode怎么修改当前工作区默认文件编码

更多相关阅读请进入《vsCode》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...