• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

VsCode之使用WebView通信详解

c# 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

之前我在这篇文章VsCode插件开发之插件初步通信

通过插件完成通信,这回我还是通过插件,只不过方式主要以在ts文件里面使用webview来进行通信。

另外在此声明,一定要好好看仔细看官方文档,国内关于VsCode相关的开发,少之又少,虽然有一个叫小茗同学写的相对较全面,但是大家可以仔细看,其实他的内容大多也来自官方,同时有部分也加上自己的理解和想法。个人建议,关于VsCode插件相关的,最好是跑一跑VsCode相关官方例子,这样有助于对VsCode插件开发有一个大致的思路和全局认识,换言之有一个感性的认识。

官方文档地址:https://code.visualstudio.com/api

官方插件例子:https://github.com/Microsoft/vscode-extension-samples

引用官方的说明:

webview API允许扩展在Visual Studio Cod本文来源[email protected]搞@^&代*@码网(e中创建完全可自定义的视图。例如,内置的Markdown扩展程序使用Web视图来呈现Markdown预览。Web视图还可用于构建复杂的用户界面,超出VsCode的本机API支持。

将webview视为iframe扩展程序控制的Vs代码内部。webview几乎可以呈现此框架中的任何HTML内容,并使用消息传递与扩展进行通信。这种自由使得webview非常强大,并开辟了一系列全新的扩展可能性。

官方对于是否应该使用webview需要考虑这么几个方面?

第一,这个功能真的需要存在于VsCode中吗?作为单独的APP或者网站是否会更好?

第二,webview是实现功能的唯一方法吗?可以使用常规 Vs Code API吗?

第三,webview会增加足够的用户价值来证明其高资源成本吗?

在我看来,如果是在VsCode内部进行增加webview,可能导致某种混乱或者不利的影响,还不如直接通过插件开发来进行分离完成功能,这样既解耦又对VsCode本身影响不会太大。

官方的Demo:https://github.com/Microsoft/vscode-extension-samples/blob/master/webview-sample

官方讲解:https://code.visualstudio.com/api/extension-guides/webview

上面我说过跑官方的例子有助于更好的认识,同时对于学习信心的提升也有很大的帮助,同时你可以在此基础上改,从而让你对其认识更加深刻。

项目结构(以项目结构中的组成来讲解)

目录的作用分别如下:

.vscode 运行所必须,同时也包括一些用户区和工作区设置(注意,用户区设置优于工作区设置)

node_modules node.js的依赖库

out 编译输出目录(ts编译成功会输出对应的js)

src 源文件所在目录(主要是ts文件,当然了也可能是ts,就看你插件开发时,选择的是js还是ts)

.gitignore git提交时排除一些无关紧要的(java maven项目对于一些target文件中.class是没必要提交到git仓库的)

.vscodeignore

如图所示:

我觉得它的作用和.gitignore是一样的,之所以存在它,是因为要防止.gitignore不生效的缘故吧(以之前项目开发经历来说,有的时候确实存在.gitignore无效问题)。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:VsCode之使用WebView通信详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址