次の方法で共有


ディープ リンクの構成と処理

個人用タブ、共有タブ、チャット メッセージ、ボットなど、さまざまなコンテキストからのディープ リンクを実行するように Teams アプリを構成できます。

[個人用] タブまたは [共有] タブ

TeamsJS を使用してアプリを操作できます。 次のコードは、Teams アプリ内の特定のエンティティに移動する方法を示しています。 アプリは TeamsJS ライブラリを使用してディープ リンクを実行できます。 ディープ リンクを実行するには、次の API を呼び出します。

次のコードに示すように、 pages.navigateToApp() 関数を使用してタブからナビゲーションをトリガーできます。

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 */ }

ページ機能の使用の詳細については、「pages.navigateToApp() とその他のナビゲーション オプションのための pages 名前空間」を参照してください。 必要に応じて、app.openLink() 関数を使用してディープ リンクを直接開くこともできます。

チャット メッセージ

チャットにメッセージを投稿し、ディープ リンクを追加するようにアプリを構成できます。 メッセージにディープ リンクを含めることができるさまざまな方法を次に示します。

ハイパーリンクされた Markdown テキスト メッセージにディープ リンクを追加すると、Teams 内でトリガーされて開かれます。 次に例を示します。

例: [App](https://teams.microsoft.com/l/app/{appId})。ここで、 appId はアプリケーション ID です。 詳細については、「 さまざまな種類のアプリのアプリ ID」を参照してください。

詳細については、「 Teams で Markdown の書式設定を使用する」を参照してください。

生のテキスト メッセージにディープ リンクを追加すると、Teams 内でトリガーされて開かれます。 次に例を示します。

例: https://teams.microsoft.com/l/app/{appId}。ここで、 appId はアプリケーション ID です。 詳細については、「 さまざまな種類のアプリのアプリ ID」を参照してください。

アダプティブ カード

アダプティブ カードに openURL アクションを含め、それにディープ リンクを追加できます。 ディープ リンクは Teams 内で実行されます。 アダプティブ カードの未加工のリンクまたはハイパーリンクがブラウザーで開いているので、 openURL アクションを使用することをお勧めします。 詳細については、「 Action.OpenUrl」を参照してください。

アダプティブ カード ペイロードの例を次に示します。


{
    "$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}"
    }
    ]
}

タブ アプリへのディープ リンクがトリガーされたら、すべてのパラメーターがタブ コンテキストのリンクに設定されていることを確認します。 これにより、タブ コンテキストは、ディープ リンクで構成されたページ、サブページ、またはラベルを識別し、特定のセクションを開きます。 詳細については、「タブのコンテキストを取得する」を参照してください。

Teams がディープ リンクを介してタブに移動すると、Teams はサブページ ID が存在するかどうかを確認し、TeamsJS ライブラリを介して取得します。

タブがディープ リンク内を移動した場合、 app.getContext()microsoftTeams.getContext() を呼び出して、サブページ ID が存在するかどうかを確認します。 TeamsJS v2 ライブラリでは、サブページ ID には subPageId という名前が付けられ、v1 では subEntityId。 詳細については、「PageInfo インターフェース」を参照してください。