Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Sie können jede iframekompatible Webseite als Registerkarte auf den Azure DevOps-Abfrageergebnisseiten hosten. In diesem Artikel wird das Hinzufügen einer einfachen Registerkarte "Hello World" erläutert.
Tipp
Für die neuesten Anleitungen zur Erweiterungsentwicklung, einschließlich Themengestaltung und Migration von VSS.SDK, besuchen Sie das Entwicklerportal des Azure DevOps Extension SDK.
Erstellen Ihrer Webseite
Installieren Sie das Azure-devops-extension-sdk-Paket , und platzieren Sie die
SDK.jsDatei inhome/sdk/scripts.npm install azure-devops-extension-sdkErstellen Sie die Webseite, die Sie anzeigen möchten. Im folgenden Beispiel wird dem
hello-world.htmlVerzeichnis eine einfachehomeSeite hinzugefügt.Referenzieren Sie das SDK auf Ihrer HTML-Seite und rufen Sie
SDK.init()gefolgt vonSDK.notifyLoadSucceeded()auf.<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Hello World</title> <script src="sdk/scripts/SDK.js"></script> </head> <body> <script type="text/javascript">SDK.init();</script> <h1>Hello World</h1> <script type="text/javascript">SDK.notifyLoadSucceeded();</script> </body> </html>
Aktualisieren des Erweiterungsmanifests
Aktualisieren Sie Die Erweiterungsmanifestdatei mit dem folgenden Code:
...
"contributions": [
{
"id": "Fabrikam.HelloTab.Query.Tabs",
"type": "ms.vss-web.tab",
"description": "Adds a 'Hello' tab to the query results",
"targets": [
"ms.vss-work-web.query-tabs"
],
"properties": {
"uri": "hello-query-tab.html",
"title": "Hello",
"name": "Hello"
}
}
],
"scopes": [
"vso.work"
],
"files": [
{
"path": "hello-query-tab.html", "addressable": true
},
{
"path": "scripts", "addressable": true
},
{
"path": "sdk/scripts", "addressable": true
},
{
"path": "images/logo.png", "addressable": true
}
]
...
Beiträge
Jeder Beitrag definiert eine type (Registerkarte), eine target (Abfragetabs) und spezifische properties für den jeweiligen Typ. Legen Sie für eine Registerkarte name und title als Anzeigetext fest und setzen Sie uri für den Seitenpfad relativ zum Basis-URI der Erweiterung.
Geltungsbereiche
Im Abschnitt "Bereiche " werden die Berechtigungen deklariert, die ihre Erweiterung benötigt. Im folgenden Beispiel wird vso.work verwendet, um auf Arbeitsaufgaben zuzugreifen.
Dateien
Im Abschnitt "Dateien " werden alle Dateien aufgelistet, die Ihre Erweiterung zur Laufzeit benötigt. Setze addressable auf true für Dateien, die URL-adressierbar sein müssen.
Example
SDK.register(SDK.getContributionId(), {
pageTitle: function(state) {
return "Hello";
},
updateContext: function(tabContext) {
},
isInvisible: function(state) {
return false;
},
isDisabled: function(state) {
return false;
}
});
Alle verfügbaren Beitragspunkte finden Sie unter Erweiterbarkeitspunkte.