webview – VSCode扩展IPC,在HTML预览中使用UI

webview – VSCode扩展IPC,在HTML预览中使用UI,第1张

概述我希望为VSCode开发一个单元测试运行器扩展.扩展应显示已发现的测试,这些测试分为可扩展层次结构,注释运行状态,每个测试的显示输出和错误,在不同级别提供运行/调试命令,当然还有红色/绿色条. 大致将其扩展为“模型”和“视图”,我计划在扩展过程中实现模型,并计划将视图实现为基于TextDocumentContentProvider的HTML预览. (有更好的方法吗?) 现在,模型和视图应该相互通信 我希望为VSCode开发一个单元测试运行器扩展.扩展应显示已发现的测试,这些测试分为可扩展层次结构,注释运行状态,每个测试的显示输出和错误,在不同级别提供运行/调试命令,当然还有红色/绿色条.

大致将其扩展为“模型”和“视图”,我计划在扩展过程中实现模型,并计划将视图实现为基于TextdocumentContentProvIDer的HTML预览. (有更好的方法吗?)

现在,模型和视图应该相互通信.我想将视图实现为单页面应用程序.视图将向模型发送命令,模型将事件发送到视图(或视图将轮询模型以查找事件).视图将根据收到的事件自行更新.

我的问题是,我应该使用什么通信技术? HTML预览中的HTML页面可以访问VSCode / Atom / Electron / Node API吗?我可以共享对象实例,还是做一些轻量级的IPC?到目前为止我还没搞清楚.

当用户单击href设置为特定方案的链接(command://或我为TextdocumentContentProvIDer注册的链接)时,我发现我可以调用VSCode命令或刷新整个页面.

我成功地在扩展过程中打开http侦听器(http.createServer),并在HTML预览端通过XMLhttpRequest进行通信.但它看起来像一个沉重的矫枉过正.

我想知道是否有更合适的方法来做到这一点?

解决方法 VSCode有一个新的API,使这更容易.

https://github.com/Microsoft/vscode/issues/43713

您可以找到新的API here

要尝试新的API:

>将“enableProposedAPI”:true添加到package.Json中
>手动下载vscode.proposed.d.ts并将其添加到您的项目中:https://raw.githubusercontent.com/Microsoft/vscode/master/src/vs/vscode.proposed.d.ts>使用最新的VS Code内部人员构建运行您的扩展

总结

以上是内存溢出为你收集整理的webview – VSCode扩展IPC,在HTML预览中使用UI全部内容,希望文章能够帮你解决webview – VSCode扩展IPC,在HTML预览中使用UI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存