個人用タブ、共有タブ、チャット メッセージ、ボットなど、さまざまなコンテキストからのディープ リンクを実行するように 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 インターフェース」を参照してください。
Platform Docs