Visual studio code VS代码扩展能否从其他程序获取URI请求?
我在官方文档中找到了可以作为激活事件使用的信息。因此,我的扩展可以通过调用URI(例如Visual studio code VS代码扩展能否从其他程序获取URI请求?,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我在官方文档中找到了可以作为激活事件使用的信息。因此,我的扩展可以通过调用URI(例如vscode://myextension/arg1=foo&arg2=bar。但它没有说明如何获取URI请求传递的参数。甚至只是得到一个原始的字符串 我的问题是,可以这样做吗?如果不能,是否有其他方法使VS代码扩展与其他程序交互?是的,您可以使用以下方法: 能够处理系统范围内的寄存器。如果有多个窗口打开,最上面的窗口将处理uri。uri处理程序的作用域为其提供源的扩展;它将只能处理指向扩展本身的URI。uri必
vscode://myextension/arg1=foo&arg2=bar
。但它没有说明如何获取URI请求传递的参数。甚至只是得到一个原始的字符串
我的问题是,可以这样做吗?如果不能,是否有其他方法使VS代码扩展与其他程序交互?是的,您可以使用以下方法:
能够处理系统范围内的寄存器。如果有多个窗口打开,最上面的窗口将处理uri。uri处理程序的作用域为其提供源的扩展;它将只能处理指向扩展本身的URI。uri必须遵守以下规则:
- uri方案必须是产品名称
- uri权限必须是扩展id(例如,
)my.extension
- uri路径、-query和-fragment部分是任意的。
例如,如果
扩展注册了uri处理程序,则只允许它处理前缀为my.extension
product的uri-name://my.extension
- 注意:当指向当前扩展的uri即将被处理时,会触发一个激活事件
onUri
vscode.window.registerUriHandler({
handleUri(uri:vscode.uri){
//对URI做些什么
}
});