Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VS代码扩展能否从其他程序获取URI请求?_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Visual studio code VS代码扩展能否从其他程序获取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必

我在官方文档中找到了可以作为激活事件使用的信息。因此,我的扩展可以通过调用URI(例如
vscode://myextension/arg1=foo&arg2=bar
。但它没有说明如何获取URI请求传递的参数。甚至只是得到一个原始的字符串

我的问题是,可以这样做吗?如果不能,是否有其他方法使VS代码扩展与其他程序交互?

是的,您可以使用以下方法:

能够处理系统范围内的寄存器。如果有多个窗口打开,最上面的窗口将处理uri。uri处理程序的作用域为其提供源的扩展;它将只能处理指向扩展本身的URI。uri必须遵守以下规则:

  • uri方案必须是产品名称

  • uri权限必须是扩展id(例如,
    my.extension

  • uri路径、-query和-fragment部分是任意的。 例如,如果
    my.extension
    扩展注册了uri处理程序,则只允许它处理前缀为
    product的uri-name://my.extension
扩展在其整个激活生命周期中只能注册一个uri处理程序

  • 注意:当指向当前扩展的uri即将被处理时,会触发一个激活事件
    onUri
用法非常简单:

vscode.window.registerUriHandler({
handleUri(uri:vscode.uri){
//对URI做些什么
}
});