Konfiguration und Behandlung von Deep Links

Sie können Ihre Teams-App so konfigurieren, dass Deep-Links aus verschiedenen Kontexten wie persönliche Registerkarte, freigegebene Registerkarte, Chatnachricht und Bot ausgeführt werden.

Registerkarte "Persönlich" oder "Freigegeben"

Es ist möglich, in einer App mit TeamsJS zu navigieren. Der folgende Code veranschaulicht, wie Sie zu einer bestimmten Entität innerhalb Ihrer Microsoft Teams-App navigieren. Apps können einen Deep Link mithilfe der TeamsJS-Bibliothek ausführen. Um einen Deep-Link auszuführen, rufen Sie die folgende API auf:

Sie können die Navigation von Ihrer Registerkarte aus mit der Funktion pages.navigateToApp() auslösen, wie im folgenden Code gezeigt:

if (pages.isSupported()) {
  const navPromise = pages.navigateToApp({ appId: <appId>, pageId: <pageId>, webUrl: <webUrl>, subPageId: <subPageId>, channelId:<channelId>});
  navPromise.
     then((result) => {/*Successful navigation*/}).
     catch((error) => {/*Failed navigation*/});
}
else { /* handle case where capability isn't supported */ }

Weitere Informationen zur Verwendung der pages-Funktion finden Sie unter pages.navigateToApp() und im pages-Namespace für andere Navigationsoptionen. Bei Bedarf ist es auch möglich, einen Deep-Link direkt mithilfe der app.openLink()-Funktion zu öffnen.

Chatnachricht

Sie können Ihre App so konfigurieren, dass Sie Nachrichten in einem Chat posten und ihnen Deep-Links hinzufügen. Im Folgenden finden Sie verschiedene Möglichkeiten, wie Sie einen Deep-Link in eine Nachricht einfügen können:

Wenn Sie einen Deep-Link zu einer mit Links verknüpften Markdown-TEXTnachricht hinzufügen, wird dieser ausgelöst und in Teams geöffnet. Es folgt ein Beispiel:

Beispiel: [App](https://teams.microsoft.com/l/app/{appId}), wobei appId Ihre Anwendungs-ID ist. Weitere Informationen zu den verschiedenen verwendeten App-IDs finden Sie unter App-ID, die für verschiedene Apps verwendet wird.

Weitere Informationen finden Sie unter Verwenden der Markdownformatierung in Teams.

Wenn Sie einer unformatierten SMS einen Deep-Link hinzufügen, wird dieser in Teams ausgelöst und geöffnet. Es folgt ein Beispiel:

Beispiel: https://teams.microsoft.com/l/app/{appId}, wobei appId Ihre Anwendungs-ID ist. Weitere Informationen zu den verschiedenen verwendeten App-IDs finden Sie unter App-ID, die für verschiedene Apps verwendet wird.

Adaptive Karte

Sie können eine openURL Aktion in eine adaptive Karte einschließen und ihr einen Deep-Link hinzufügen. Der Deep-Link wird in Teams ausgeführt. Wenn unformatierte Links oder Links in einer adaptiven Karte im Browser geöffnet werden, empfiehlt es sich, aktion zu verwenden openURL . Weitere Informationen finden Sie unter Action.OpenUrl.

Es folgt ein Beispiel für adaptive Kartennutzlast:


{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "This card's action will open a URL"
        }
    ],
    "actions": [
        {
    "type": "Action.OpenUrl",
    "title": "Action.OpenUrl",
    "url": "https://teams.microsoft.com/l/app/{appId}"
    }
    ]
}

Wenn ein Deep Link zu einer Registerkarten-App ausgelöst wird, stellen Sie sicher, dass alle Parameter in diesem Link für den Registerkartenkontext festgelegt sind. Es ermöglicht dem Registerkartenkontext, die im Deep-Link konfigurierte Seite, Unterseite oder Bezeichnung zu identifizieren und den spezifischen Abschnitt zu öffnen. Weitere Informationen finden Sie unter Abrufen des Kontexts für Ihre Registerkarte.

Wenn Teams über einen Deep-Link zur Registerkarte navigiert, überprüft Teams, ob die Unterseiten-ID vorhanden ist, und ruft sie über die TeamsJS-Bibliothek ab.

Wenn die Registerkarte durch einen Deep-Link navigiert wird, ruft die app.getContext() auf microsoftTeams.getContext() , um zu überprüfen, ob die Unterseiten-ID vorhanden ist. In der TeamsJS v2-Bibliotheks-Unterseiten-ID wird als subPageId benannt, und in v1 lautet subEntityIdsie . Weitere Informationen finden Sie unter PageInfo-Schnittstelle.