Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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
Azure DevOps扩展:将查询参数传递到自定义生成报告视图_Azure_Azure Devops - Fatal编程技术网

Azure DevOps扩展:将查询参数传递到自定义生成报告视图

Azure DevOps扩展:将查询参数传递到自定义生成报告视图,azure,azure-devops,Azure,Azure Devops,我正在为Azure DevOps构建一个自定义扩展,特别是一个。我在manifest.json文件中有一个相当基本的定义 { "id": "my-report-hub", "type": "ms.vss-build-web.build-results-tab", "targets": [ "ms.vss-build-web.build-results-view&quo

我正在为Azure DevOps构建一个自定义扩展,特别是一个。我在manifest.json文件中有一个相当基本的定义

{
  "id": "my-report-hub",
  "type": "ms.vss-build-web.build-results-tab",
  "targets": [
    "ms.vss-build-web.build-results-view"
  ],
  "properties": {
    "name": "My Build Report",
    "uri": "build/myReport.html"
  }
}
报告的HTML是动态的,并且生成的变量有助于定义页面内容。本质上,报告页面显示了构建错误的列表,如果您单击错误,我会动态地显示错误的更详细描述

我试图做的是深度链接这些生成的页面之一,这意味着调用构建视图的URL,但以某种方式传递参数。URL通常如下所示:

https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub
https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub&errno=11
当然,这会打开主页。我想传递我的TypeScript/JavaScript可以读取的参数,然后弹出与错误号关联的生成页面。例如,我可以添加如下参数:

https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub
https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub&errno=11
但是,当调用我的实际资产的HTML/JS时,它位于iframe中,并且不获取参数(事实上,它获得一个指向资产页面本身的链接,或多或少没有查询参数)。当然,为了获取视图参数,我无法获取“顶级文档”,因为这会跨越域,我没有访问权限(安全性!)

所以问题是:如果确实可能的话,如何通过链接/url将参数传递到构建报告视图


谢谢你的帮助

我也有同样的要求。这有点让人困惑,因为部分文档指向新的SDK,有些指向旧的SDK;但是,使用此选项: 我能够做到:

    import * as SDK from "azure-devops-extension-sdk";
    import { CommonServiceIds, IHostNavigationService} from "azure-devops-extension-api";

    public componentDidMount() {
        SDK.init();
        const hostNavigationService = await SDK.getService<IHostNavigationService>(CommonServiceIds.HostNavigationService);
        let pageNavigationParams = await hostNavigationService.getQueryParams();
        console.log(pageNavigationParams)
    }
import*作为SDK从“azure devops扩展SDK”导入;
从“azure devops扩展api”导入{CommonServiceID,IHostNavigationService};
公共组件didmount(){
SDK.init();
const hostNavigationService=wait SDK.getService(CommonServiceIds.hostNavigationService);
让pageNavigationParams=等待hostNavigationService.getQueryParams();
console.log(pageNavigationParams)
}

然后,将
&errno=11
添加到URL应该会显示在
pageNavigationParams

中,这有一个类似的扩展名为“贡献指南”。您可以在此处参考示例:。您还可以参考其他vsts扩展示例:。