Stageview でコンテンツを開く

Microsoft Teams には、イマーシブ キャンバス エクスペリエンスでアプリ コンテンツを開く複数の方法が用意されています。 Stageview を使用すると、ユーザーは Teams 内でマルチタスクを採用できます。たとえば、サイド パネルに特定のチャットがある新しい Teams ウィンドウでアプリ コンテンツを開くことができます。 Stageview は、次の目的で設計されています。

  • Teams 内でのマルチタスクを容易にする。
  • Teams マルチウィンドウでのコラボレーションをサポートします。
  • 大規模なモーダル エクスペリエンスで特定のタスクに焦点を当てます。

注:

この記事は、Teams JavaScript クライアント ライブラリ (TeamsJS) バージョン 2.0.x に基づいています。 以前のバージョンを使用している場合は、最新バージョンと以前のバージョンの間のガイダンスについては、「 TeamsJS 」を参照してください。

Stageview の種類

Stageview には、UI と機能に基づいて、アプリ コンテンツを開く 3 つの方法が用意されています。

Collaborative Stageview

Collaborative Stageview を使用すると、Teams のアプリ コンテンツのマルチタスク シナリオが可能になります。 ユーザーは、サイド パネルの会話を伴いながら、新しい Teams ウィンドウ内でアプリ コンテンツを開いて表示できます。 このビューを使用すると、同じウィンドウ内から有意義なコンテンツエンゲージメントとコラボレーションが可能になります。

最適な使用方法: チャット、チャネル、チャネル タブなどの会話からコンテンツを開くとき。

スクリーンショットは、Teams の Collaborative Stageview を示しています。

Stageview Multi-window

Stageview Multi-window は、ユーザーがコラボレーションを必要とせずに Teams でマルチタスクを行う必要があるシナリオに役立ちます。 このビューでは、ユーザーがタスクに集中できるサイド パネルの会話なしで、新しい Teams ウィンドウでアプリ コンテンツが開きます。

最適な使用方法: 個人用アプリなどの非会議サーフェスからコンテンツを開くとき。

スクリーンショットは、Teams の Stageview マルチウィンドウを示しています。

Stageview モーダル

Stageview Modal は、Teams メイン ウィンドウ内でアプリコンテンツをレンダリングするために使用される全画面表示 UI コンポーネントです。 このビューを使用すると、ユーザーはアプリ コンテンツと連携するための集中したエクスペリエンスが提供されます。 Stageview モーダルは、ユーザーがマルチタスクを行う必要のないリッチ コンテンツを表示する場合に便利です。 これは、Collaborative Stageview と Stageview Multi-window がサポートされていない場合の既定のビューです。

注:

Teams Web クライアントでは、Stageview モーダルのみがサポートされます。

スクリーンショットは、Teams の Stageview モーダルを示しています。

Stageview の呼び出し

次のいずれかの方法で Teams で Stageview を呼び出し、期待される Stageview 応答を構成できます。 次の表に、各 Stageview 呼び出しメソッドの既定の応答と定義された応答を示します。

Invoke メソッド 既定の応答 定義された応答
アダプティブ カード Collaborative Stageview で開きます。 Collaborative Stageview または Stageview Multi-window がサポートされていない場合は、Stageview モーダルで開きます。
stageView API Collaborative Stageview で開きます。 定義された に基づいて、それぞれの Stageview でopenMode開きます。
ディープ リンク Collaborative Stageview で開きます。 定義された に基づいて、それぞれの Stageview でopenMode開きます。

openMode プロパティ

openModeStageViewParams インターフェイスのプロパティです。 プロパティは openMode 省略可能であり、 stageView API または ディープ リンク で定義して、Stageview 応答の種類を決定できます。 プロパティには openMode 、次の 3 つの値があります。

  • popoutWithChat
  • popout
  • modal

次の表に、値の Stageview 応答を openMode 示します。

Input 応答
openMode として定義されます popoutWithChat 関連するサイド パネルの会話を含む Collaborative Stageview で開きます。
openMode として定義されます popout サイド パネルの会話を行わずに Stageview マルチウィンドウで開きます。
openMode として定義されます modal Stageview モーダルで開きます。

が定義されていない場合 openMode 、コンテンツは、関連付けられたサイド パネルの会話を含む Collaborative Stageview で既定で開きます。 Stageview 応答のフォールバック階層は ですpopoutWithChatmodal>popout>。

注:

  • 値では openMode 大文字と小文字が区別されます。 正しい大文字と小文字を使用しない場合、コンテンツは Stageview Modal で開きます。
  • Teams Web クライアントなど、ポップアウト エクスペリエンスがサポートされていない場合、プロパティが定義されている場合 openMode でも、コンテンツは Stageview Modal で開きます。

アダプティブ カードから Collaborative Stageview を呼び出す

アダプティブ カードからのコラボレーション ステージ ビューを使用すると、ユーザーは会話フローを続行しながらコンテンツに参加できます。 Teams Web クライアントのアダプティブ カード JSON から Collaborative Stageview が呼び出されると、Stageview モーダルで開きます。

次の手順は、アダプティブ カードから Collaborative Stageview がどのように呼び出されるかを理解するのに役立ちます。

  1. ユーザーが Teams チャットでアプリ コンテンツの URL を共有すると、ボットは呼び出し要求を composeExtensions/queryLink 受け取ります。 ボットは、 型を持つアダプティブ カードを返します tab/tabInfoAction

  2. ユーザーがアダプティブ カードのアクション ボタンを選択すると、アダプティブ カードのコンテンツに基づいて Collaborative Stageview が開きます。

グラフィカルな表現は、アダプティブ カードからの Collaborative Stageview 応答を示しています。

次の JSON コードは、アダプティブ カードにアクション ボタンを作成する例です。

{
  "type": "Action.Submit",
  "title": "Open",
  "data": {
    "msteams": {
      "type": "invoke",
      "value": {
        "type": "tab/tabInfoAction",
        "tabInfo": {
          "contentUrl": "contentUrl",
          "websiteUrl": "websiteUrl",
          "name": "Sales Report",
          "entityId": "entityId"
        }
      }
    }
  }
}

アダプティブ カードを作成するためのベスト プラクティス

  • コンテンツ URL は、アプリ マニフェストの の validDomains 一覧内にある必要があります。
  • 呼び出し要求の種類は である composeExtensions/queryLink必要があります。
  • ワークフローは invoke ワークフローに appLinking 似ている必要があります。
  • Action.Submit 、整合性を維持するように構成 Open する必要があります。

アプリが Teams モバイル クライアントで動作するように最適化されていない場合は、 Microsoft Teams ストア を介して配布されるアプリの Stageview が既定の Web ブラウザーで開きます。

stageView API から呼び出す

TeamsJS の stageView API を使用すると、定義された に基づいて Stageview エクスペリエンスで Teams ウィンドウを openMode 開きます。 プロパティが openMode 定義されていない場合、既定の応答は、関連付けられたサイド パネルの会話を含む Collaborative Stageview です。 Collaborative Stageview エクスペリエンスでは、サイド パネルの会話は、チャットやグループ チャットなど、Stageview が呼び出されたスレッドと同じです。

注:

stageView API では、オプションの threadId パラメーターがサポートされています。これにより、特定の会話を Collaborative Stageview サイド パネルに移動できます。 へのマッピング contentUrlthreadId 使用すると、コンテンツと共に会話を保持できます。

次のコードは、stageView API の各 openMode 値のサンプルです。

プロパティはopenMode、Collaborative Stageview で開く StageViewParams で と定義popoutWithChatされます。

  {
    "appId": "2c19df50-1c3c-11ea-9327-cd28e4b6f7ba",
    "contentUrl": "https://teams-test-tab.azurewebsites.net",
    "title": "Test tab ordering",
    "websiteUrl": "https://teams-test-tab.azurewebsites.net",
    "openMode": "popoutWithChat"
  }

が StageViewParams で定義されていない場合openMode、既定の応答は Collaborative Stageview です。

  {
    "appId": "2c19df50-1c3c-11ea-9327-cd28e4b6f7ba",
    "contentUrl": "https://teams-test-tab.azurewebsites.net",
    "title": "Test tab ordering",
    "websiteUrl": "https://teams-test-tab.azurewebsites.net"
  }

stageView API の詳細については、「 stageView モジュール」を参照してください。

stageView API パラメーター

プロパティ名 種類 文字数制限 必須 説明
entityId String 64 省略可能 タブに表示されるエンティティの一意の ID。
appId String 64 はい 開く Teams アプリの ID。
name String 128 省略可能 チャネル インターフェイスのタブの表示名。 値が指定されていない場合は、アプリ名が表示されます。
contentUrl String 2048 はい Teams に表示するエンティティ UI を指す https:// URL。
websiteUrl String 2048 はい ユーザーがブラウザーで表示を選択した場合にポイントする https:// URL。
Threadid String 2048 省略可能 ID は、Collaborative Stageview サイド パネルに表示される会話を定義します。 値が渡されない場合は、 threadId Collaborative Stageview が開かれたコンテキストから継承されます。
: 省略可能な threadId パラメーターは、チャット スレッドのみをサポートします。 チャネル threadId が使用されている場合、サイド パネルは表示されません。
openMode String 2048 省略可能 プロパティは、デスクトップ クライアントのステージ コンテンツの開いている動作を定義します。

タブまたは個人用アプリからディープ リンクを使用して Stageview を呼び出すには、 app.openLink(url) API でディープ リンク URL をラップし、チャット コンテンツを openMode 開くプロパティを定義します。 openMode プロパティが指定されていない場合、ディープ リンクからの Stageview 応答は既定で Collaborative Stageview になります。

サイド パネルに特定のチャットを表示するには、 を threadId指定する必要があります。 それ以外の場合は、サイド パネルの会話によって、ディープ リンクが呼び出されるグループ チャットまたはチャネル スレッドが表示されます。

注:

  • URL を貼り付ける前に、すべてのディープ リンクをエンコードする必要があります。 エンコードされていない URL はサポートされていません。
  • 特定のコンテキストから Stageview を呼び出すときは、アプリがそのコンテキストで動作することを確認します。
  • threadId を追加するときは、渡された threadId のコンテキストでアプリが動作することを確認します。 コンテキストが失敗した場合、エクスペリエンスは個人用コンテキストにフォールバックします。

構文

Collaborative Stageview のディープ リンク構文:

https://teams.microsoft.com/l/stage/{appId}/0?context={"contentUrl":"contentUrl","websiteUrl":"websiteUrl","name":"Contoso","openMode":"popoutWithChat","threadId":"threadId"}

Collaborative Stageview のエンコードされたディープ リンク構文:

https://teams.microsoft.com/l/stage/%7BappId%7D/0?context=%7B%22contentUrl%22:%22contentUrl%22,%22websiteUrl%22:%22websiteUrl%22,%22name%22:%22Contoso%22,%22openMode%22:%22popoutWithChat%22,%22threadId%22:%22threadId%22%7D


Collaborative Stageview を呼び出すためのエンコードされたディープ リンク URL:

https://teams.microsoft.com/l/stage/6d621545-9c65-493c-b069-2b978b37c117/0?context=%7B%22appId%22%3A%226d621545-9c65-493c-b069-2b978b37c117%22%2C%22contentUrl%22%3A%22https%3A%2F%2F3282-115-111-228-84.ngrok-free.app%22%2C%22websiteUrl%22%3A%22https%3A%2F%2F3282-115-111-228-84.ngrok-free.app%22%2C%22name%22%3A%22DemoStageView%22%2C%22openMode%22%3A%22popoutWithChat%22%2C%22threadId%22%3A%2219%3Abe817b823c204cde8aa174ae146251dd%40thread.v2%22%7D

プロパティ名 種類 文字数制限 必須 説明
entityId String 64 省略可能 タブに表示されるエンティティの一意の ID。
appId String 64 はい 開く Teams アプリの ID。
name String 128 省略可能 チャネル インターフェイスのタブの表示名。 値が指定されていない場合は、アプリ名が表示されます。
contentUrl String 2048 はい Teams に表示するエンティティ UI を指す https:// URL。
websiteUrl String 2048 はい ユーザーがブラウザーで表示を選択した場合にポイントする https:// URL。
Threadid String 2048 省略可能 ID は、Collaborative Stageview サイド パネルに表示される会話を定義します。 値が渡されない場合は、 threadId Collaborative Stageview が開かれたコンテキストから継承されます。
: 省略可能な threadId パラメーターは、チャット スレッドのみをサポートします。 チャネル threadId が使用されている場合、サイド パネルは表示されません。
openMode String 2048 省略可能 プロパティは、デスクトップ クライアントのステージ コンテンツの開いている動作を定義します。

マルチタスクを容易にしたり、コラボレーションを強化したり、集中したユーザー エクスペリエンスを提供したりする場合でも、Stageview には要件に合ったモードがあります。

FAQ


どのステージビューを使用する必要がありますか?

Collaborative Stageview を使用すると、ユーザーは Teams ウィンドウでサイド パネルの会話と共にコンテンツを開きます。 このビューは、ほとんどのコラボレーション シナリオに最適です。


Stageview モーダルとダイアログの違いは何ですか?

Stageview モーダルは、ページ、ダッシュボード、ファイルなどのリッチ コンテンツをユーザーに表示するのに役立ちます。
ダイアログ (TeamsJS v1.x のタスク モジュールと呼ばれます) は、ユーザーの注意を必要とするメッセージを表示したり、次の手順に進むのに必要な情報を収集したりするのに役立ちます。


Stageview が呼び出されると、コンテンツは Collaborative Stageview で開きますが、新しいウィンドウではなくメイン Teams ウィンドウに読み込まれます。新しいウィンドウでコンテンツを開く方法

ドメインが contentUrl マニフェスト validDomains プロパティに正確に反映されていることを確認します。 詳細については、「 アプリ マニフェスト スキーマ」を参照してください。


'contentUrl' が 'validDomains' と一致する場合でも、新しい Teams ウィンドウにコンテンツが表示されないのはなぜですか?

すべての iframe ベースのコンテンツを呼び出 app.notifySuccess() して、アプリが正常に読み込まれたことを Teams に通知します。 該当する場合、Teams は読み込みインジケーターを非表示にします。 が 30 秒以内に呼び出されない場合 notifySuccess 、Teams はアプリがタイムアウトであると想定し、再試行オプションを含むエラー画面を表示します。 アプリの更新の場合、この手順は既に構成されているタブに適用されます。 この手順を実行しない場合は、既存のユーザーのエラー画面が表示されます。


'contentUrl' にディープ リンクを含めることができますか?

いいえ。ディープ リンクは では contentUrlサポートされていません。


操作方法コンテンツと共に特定のスレッドを表示したままにしますか?

ディープ リンクまたは stageView API からの共同ステージ ビューには、追加 threadId のパラメーターが付属しています。 特定 contentUrlの のサイド パネルに表示されるチャット スレッドを明示的に定義できます。 の取得の詳細については、「会話スレッドthreadId取得する」を参照してください。


関連項目

ディープ リンクの作成