Erstellen einer Seite zum Entfernen
Sie können die Benutzererfahrung erweitern und verbessern, indem Sie Die Entfernungs- und Änderungsoptionen in Ihrer App unterstützen. Teams ermöglicht Benutzern das Umbenennen oder Entfernen eines Kanals oder einer Gruppenregisterkarte, und Sie können Benutzern erlauben, Ihre Registerkarte nach der Installation neu zu konfigurieren. Darüber hinaus bietet die Registerkartenentfernung den Benutzern Optionen zum Löschen oder Archivieren von Inhalten nach dem Entfernen.
Hinweis
Dieses Thema enthält Version 2.0.x der Microsoft Teams JavaScript-Clientbibliothek (TeamsJS). Wenn Sie eine frühere Version verwenden, finden Sie in der Übersicht über die TeamsJS-Bibliothek Anleitungen zu den Unterschieden zwischen den neuesten Versionen von TeamsJS und früheren Versionen.
Aktivieren der Neukonfiguration Ihrer Registerkarte nach der Installation
Ihre manifest.json
definiert die Features und Funktionen Ihrer Registerkarte. Die Eigenschaft der Registerkarteninstanz canUpdateConfiguration
akzeptiert einen booleschen Wert, der angibt, ob ein Benutzer die Registerkarte ändern oder neu konfigurieren kann, nachdem sie erstellt wurde. Die folgende Tabelle enthält die Eigenschaftendetails:
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
canUpdateConfiguration |
Boolescher Wert | Der Wert, der angibt, ob eine Instanz der Registerkartenkonfiguration nach der Erstellung vom Benutzer aktualisiert werden kann. Der Standardwert ist true . |
Wenn Ihre Registerkarte in einen Kanal oder Gruppenchat hochgeladen wird, fügt Teams ein Dropdownmenü mit der rechten Maustaste für Ihre Registerkarte hinzu. Die verfügbaren Optionen werden durch die canUpdateConfiguration
Einstellung bestimmt. Die folgende Tabelle enthält die Einstellungsdetails:
canUpdateConfiguration |
true | false | description |
---|---|---|---|
Einstellungen | √ | Die configurationUrl Seite wird in einem iFrame neu geladen, sodass der Benutzer die Registerkarte neu konfigurieren kann. |
|
Umbenennen | √ | √ | Der Benutzer kann den Namen der Registerkarte so ändern, wie er in der Registerkartenleiste angezeigt wird. |
Entfernen | √ | √ | Wenn die Eigenschaft und der removeURL Wert auf der Konfigurationsseite enthalten sind, wird die Seite zum Entfernen in einen iFrame geladen und dem Benutzer angezeigt. Wenn keine Seite zum Entfernen enthalten ist, wird dem Benutzer ein Bestätigungsdialogfeld angezeigt. |
Erstellen einer Registerkartenentfernungsseite für Ihre Anwendung
Die optionale Seite zum Entfernen ist eine HTML-Seite, die Sie hosten und angezeigt wird, wenn die Registerkarte entfernt wird. Die URL der Entfernungsseite wird von der setConfig()
-Methode (oder setSettings()
vor TeamsJS v.2.0.0) auf Ihrer Konfigurationsseite angegeben. Wie bei allen Seiten in Ihrer App muss die Seite zum Entfernen die Voraussetzungen für die Registerkarte "Teams" erfüllen.
Registrieren eines Remove-Handlers
Optional können Sie innerhalb der Logik der Entfernungsseite den registerOnRemoveHandler((RemoveEvent) => {}
Ereignishandler aufrufen, wenn der Benutzer eine vorhandene Registerkartenkonfiguration entfernt. Die -Methode akzeptiert die RemoveEvent
-Schnittstelle und führt den Code im Handler aus, wenn ein Benutzer versucht, Inhalte zu entfernen. Die -Methode wird verwendet, um Bereinigungsvorgänge auszuführen, z. B. das Entfernen der zugrunde liegenden Ressource, die den Registerkarteninhalt mit Energie versorgt. Es kann jeweils nur ein Handler zum Entfernen registriert werden.
Die RemoveEvent
-Schnittstelle beschreibt ein -Objekt mit zwei Methoden:
Die
notifySuccess()
Funktion ist erforderlich. Es gibt an, dass die entfernung der zugrunde liegenden Ressource erfolgreich war und ihr Inhalt entfernt werden kann.Die
notifyFailure(string)
Funktion ist optional. Dies weist darauf hin, dass beim Entfernen der zugrunde liegenden Ressource ein Fehler aufgetreten ist und deren Inhalt nicht entfernt werden kann. Der optionale Zeichenfolgenparameter gibt einen Grund für den Fehler an. Falls angegeben, wird diese Zeichenfolge dem Benutzer angezeigt. andernfalls wird ein generischer Fehler angezeigt.
Verwenden der getConfig()
Funktion
Sie können (früher getSettings()
) verwenden getConfig()
, um den zu entfernenden Registerkarteninhalt zuzuweisen. Die getConfig()
Funktion gibt eine Zusage zurück, die mit dem Config-Objekt aufgelöst wird, und stellt die gültigen Einstellungseigenschaftswerte bereit, die abgerufen werden können.
Verwenden der getContext()
Funktion
Sie können verwenden getContext()
, um den aktuellen Kontext abzurufen, in dem der Frame ausgeführt wird. Die getContext()
Funktion gibt eine Zusage zurück, die mit dem Context-Objekt aufgelöst wird. Das Context-Objekt stellt gültige Context
Eigenschaftswerte bereit, die Sie in der Logik der Entfernungsseite verwenden können, um den Inhalt zu bestimmen, der auf der Entfernungsseite angezeigt werden soll.
Einschließen der Authentifizierung
Eine Authentifizierung ist erforderlich, bevor ein Benutzer den Inhalt der Registerkarte löschen kann. Kontextinformationen können verwendet werden, um Authentifizierungsanforderungen und Autorisierungsseiten-URLs zu erstellen.
Registerkarten finden Sie unter Microsoft Teams-Authentifizierungsflow. Stellen Sie sicher, dass alle Domänen, die validDomains
auf Ihren Registerkartenseiten verwendet werden, im Array Ihres App-Manifests aufgeführt sind.
Das folgende Beispiel ist ein Beispiel für den Codeblock zum Entfernen von Registerkarten:
<body>
<button onclick="onClick()">Delete this tab and all underlying data?</button>
<script>
await microsoftTeams.app.initialize();
pages.config.registerOnRemoveHandler((removeEvent) => {
// Here you can designate the tab content to be removed and/or archived.
const configPromise = pages.getConfig();
configPromise.
then((configuration) => {
configuration.contentUrl = "...";
removeEvent.notifySuccess()}).
catch((error) => {removeEvent.notifyFailure("failure message")});
});
const onClick() => {
pages.config.setValidityState(true);
}
</script>
</body>
Wenn ein Benutzer im Dropdownmenü der Registerkarte Entfernen auswählt, lädt Teams die optionale removeUrl
Seite, die Ihrer Konfigurationsseite zugewiesen ist, in einen iFrame. Dem Benutzer wird eine Schaltfläche angezeigt, die mit der onClick()
Funktion geladen ist, die die Schaltfläche Entfernen aufruft pages.config.setValidityState(true)
und aktiviert, die unten auf der Entfernungsseite iFrame angezeigt wird.
Nachdem der Entfernungshandler ausgeführt wurde, removeEvent.notifySuccess()
oder removeEvent.notifyFailure()
benachrichtigt Teams über das Ergebnis der Inhaltsentfernung.
Hinweis
- Um sicherzustellen, dass die Kontrolle eines autorisierten Benutzers über eine Registerkarte nicht behindert wird, entfernt Teams die Registerkarte sowohl in Erfolgs- als auch in Fehlerfällen.
- Nachdem Sie den
registerOnRemoveHandler
Ereignishandler aufgerufen haben, reagieren Sie innerhalb von 15 Sekunden auf die -Methode. Die App muss aufrufensetValidityState(true)
, um die Schaltfläche Entfernen zu aktivieren und für den Remove-Handler aufgerufen zu werden. Die Schaltfläche Entfernen ist nach fünf Sekunden aktiviert. - Wenn der Benutzer Entfernen auswählt, entfernt Teams die Registerkarte nach 30 Sekunden, unabhängig davon, ob die Aktionen abgeschlossen wurden oder nicht.