浅谈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的使用方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

vsCode可以开发javaweb么

vsCode断点加不上的解决方法

vsCode终端窗口无法输入命令怎么办

vsCode怎么设置插件安装位置

vsCode突然不能用怎么办

vsCode怎么设置代码补全

vsCode的终端不显示内容怎么办

vsCode有头文件不能编译解决方法

vsCode如何关闭eslint语法检查

vsCode中使用git的方法介绍

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



打赏

取消

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

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

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

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

评论

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

    正在狠努力加载,请稍候...