Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Microsoft Teams fornece vários métodos para abrir o conteúdo do aplicativo em experiências imersivas de tela. O Stageview permite que os usuários adotem multitarefas dentro do Teams, por exemplo, você pode abrir o conteúdo do aplicativo em uma nova janela do Teams com um chat específico no painel lateral. O Stageview foi projetado para:
- Facilite a multitarefa no Teams.
- Colabore com várias janelas no Teams.
- Concentre-se em tarefas específicas em uma grande experiência modal.
Observação
O artigo é baseado na versão 2.0.x da biblioteca de cliente JavaScript do Teams (TeamsJS). Se você estiver usando uma versão anterior, consulte TeamsJS para obter diretrizes entre as versões mais recentes e anteriores.
Tipos de Stageview
Com base na interface do usuário e na funcionalidade, o Stageview oferece três maneiras de abrir o conteúdo do seu aplicativo:
Modo de Exibição de Estágio Colaborativo
O Modo de Exibição de Estágio Colaborativo permite cenários de multitarefa para o conteúdo do seu aplicativo no Teams. Os usuários podem abrir e exibir o conteúdo do aplicativo em uma nova janela do Teams enquanto são acompanhados por uma conversa no painel lateral. Essa exibição permite um envolvimento significativo com o conteúdo e a colaboração na mesma janela.
Melhor uso: quando o conteúdo é aberto a partir de uma conversa, como chat, canal ou guia de canal.
Stageview com várias janelas
O Stageview Multi-janela é útil para cenários que exigem que um usuário realize multitarefas no Teams sem a necessidade de colaboração. Esse modo de exibição abre o conteúdo do aplicativo em uma nova janela do Teams sem uma conversa no painel lateral, permitindo que os usuários se concentrem em suas tarefas.
Melhor uso: quando o conteúdo é aberto de uma superfície não conversacional, como um aplicativo pessoal.
Stageview Modal
O Stageview Modal é um componente de interface do usuário de tela inteira usado para renderizar o conteúdo do aplicativo dentro da janela principal do Teams. Essa exibição fornece aos usuários uma experiência focada para interagir com o conteúdo do aplicativo. O Stageview Modal é útil para exibir conteúdo avançado que não exige que o usuário realize várias tarefas ao mesmo tempo. É a exibição padrão quando o Stageview colaborativo e o Stageview de várias janelas não são compatíveis.
Observação
O cliente Web do Teams é compatível apenas com o Stageview Modal.
Invocar Stageview
Você pode invocar o Stageview no Teams por meio de um dos métodos a seguir e configurar a resposta esperada do Stageview. A tabela a seguir fornece a resposta padrão e definida para cada método de invocação do Stageview:
| Método de invocação | Resposta padrão | Resposta definida |
|---|---|---|
| Cartão Adaptável | É aberto no modo de exibição de estágio colaborativo. | Abre no Modal do Stageview, se o Stageview colaborativo ou o Stageview Multi-window não for compatível. |
| API stageView | É aberto no modo de exibição de estágio colaborativo. | Abre no respectivo Stageview com base no openModedefinido. |
| Link profundo | É aberto no modo de exibição de estágio colaborativo. | Abre no respectivo Stageview com base no openModedefinido. |
propriedade openMode
openMode é uma propriedade na interface StageViewParams. A openMode propriedade é opcional e pode ser definida em uma API stageView ou em um link profundo para determinar o tipo de resposta do Stageview. A openMode propriedade tem os três valores a seguir:
popoutWithChatpopoutmodal
A tabela a seguir fornece a resposta do Stageview dos openMode valores:
| Input | Resposta |
|---|---|
openMode definido como popoutWithChat |
É aberto no Collaborative Stageview com uma conversa de painel lateral associada. |
openMode definido como popout |
Abre no Stageview Várias janelas sem uma conversa no painel lateral. |
openMode definido como modal |
Abre no modal Stageview. |
Quando openMode não está definido, o conteúdo é aberto por padrão no Collaborative Stageview com uma conversa de painel lateral associada. A hierarquia de fallback para uma resposta do Stageview é popoutWithChat>>popoutmodal.
Observação
- Os
openModevalores diferenciam maiúsculas de minúsculas. Se você não usar o invólucro correto, o conteúdo será aberto no Modal do Stageview. - Quando a experiência de pop-out não é suportada, por exemplo, em um cliente Web do Teams, o conteúdo é aberto no Stageview Modal mesmo quando a
openModepropriedade é definida.
Função CLOSE()
Quando um Stageview está aberto, close() a função permite que você feche programaticamente o Stageview após a ação do usuário. Esta é uma função opcional que você pode integrar em seus aplicativos criados pela Microsoft. Se a função for chamada de fora de um Stageview, a ação de fechamento não será executada.
Inicialize seu aplicativo usando microsoftTeams.app.initialize() e implemente close() a selffunção do módulo:
// App Initialize
microsoftTeams.app.initialize();
// User defined function to close the Stageview in Teams
function closeStageView() {
// Attempt to close the Stageview using close() function
microsoftTeams.stageView.self.close()
.then(() => {
console.log("Stage view closed successfully."); // Log success message
})
.catch((error) => {
console.error("Error closing stage view:", error); // Log error if closing fails
});
}
Invocar o Stageview Colaborativo do Cartão Adaptável
O Modo de Exibição de Estágio Colaborativo de um Cartão Adaptável permite que os usuários interajam com seu conteúdo enquanto continuam o fluxo da conversa. Se o Stageview Colaborativo for invocado de um JSON de Cartão Adaptável no cliente Web do Teams, ele será aberto em um Modal do Stageview.
As etapas a seguir ajudam você a entender como o Modo de Exibição de Estágio Colaborativo é invocado de um Cartão Adaptável:
Quando o usuário compartilha uma URL para um conteúdo do aplicativo em um chat do Teams, o bot recebe uma
composeExtensions/queryLinksolicitação de invocação. O bot retorna um Cartão Adaptável com o tipotab/tabInfoAction.Depois que o usuário seleciona o botão de ação no Cartão Adaptável, o Modo de Exibição de Estágio Colaborativo é aberto com base no conteúdo do Cartão Adaptável.
O código JSON a seguir é um exemplo para criar um botão de ação em um Cartão Adaptável:
{
"type": "Action.Submit",
"title": "Open",
"data": {
"msteams": {
"type": "invoke",
"value": {
"type": "tab/tabInfoAction",
"tabInfo": {
"contentUrl": "contentUrl",
"websiteUrl": "websiteUrl",
"name": "Sales Report",
"entityId": "entityId"
}
}
}
}
}
Práticas recomendadas para criar um Cartão Adaptável
- A URL do conteúdo deve estar dentro da lista do manifesto do
validDomainsaplicativo. - O tipo de solicitação de invocação deve ser
composeExtensions/queryLink. - O
invokefluxo de trabalho deve ser semelhante aoappLinkingfluxo de trabalho. - Eles
Action.Submitdevem ser configuradosOpenpara manter a consistência.
Se o seu aplicativo não estiver otimizado para funcionar no cliente móvel do Teams, o Stageview para aplicativos publicados por meio da Microsoft Teams Store será aberto em um navegador da Web padrão.
Invocar da API stageView
A API stageView do TeamsJS permite que você abra a janela do Teams em uma experiência Stageview com base no openMode definido. Se a openMode propriedade não estiver definida, a resposta padrão será uma Stageview colaborativa com uma conversa de painel lateral associada. Em uma experiência do Stageview colaborativo, a conversa do painel lateral é o mesmo thread de onde o Stageview foi invocado, como chat ou chat em grupo.
Observação
A API stageView suporta um parâmetro opcional threadId que permite trazer uma conversa específica para o painel lateral do Stageview colaborativo. Mapear contentUrl para threadId permite que você persista uma conversa ao lado do conteúdo.
Os códigos a seguir são os exemplos para cada openMode valor na API stageView:
A openMode propriedade é definida como popoutWithChat em StageViewParams para abrir no Stageview colaborativo.
{
"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"
}
Quando openMode não está definido em StageViewParams, a resposta padrão é Stageview Colaborativo.
{
"appId": "2c19df50-1c3c-11ea-9327-cd28e4b6f7ba",
"contentUrl": "https://teams-test-tab.azurewebsites.net",
"title": "Test tab ordering",
"websiteUrl": "https://teams-test-tab.azurewebsites.net"
}
Para obter mais informações sobre a API stageView, consulte o módulo stageView.
Parâmetros da API stageView
| Nome da propriedade | Tipo | Limite de caracteres | Obrigatório | Descrição |
|---|---|---|---|---|
| entityId | Cadeia de caracteres | 64 | Opcional | Uma ID exclusiva da entidade que a guia exibe. |
| appId | Cadeia de caracteres | 64 | Sim | A ID do aplicativo Teams que deve ser aberto. Para obter mais informações, consulte ID do aplicativo para diferentes tipos de aplicativos. |
| nome | Cadeia de caracteres | 128 | Opcional | O nome de exibição da guia na interface de canal. Se nenhum valor for fornecido, o nome do aplicativo será exibido. |
| contentUrl | Cadeia de caracteres | 2048 | Sim | A URL https:// que aponta para a interface do usuário da entidade a ser exibida no Teams. |
| websiteUrl | Cadeia de caracteres | 2048 | Sim | A URL https:// a ser apontada, se um usuário selecionar exibir em um navegador. |
| threadId | Cadeia de caracteres | 2048 | Opcional | O ID define a conversa mostrada no painel lateral do Stageview colaborativo. Se no for passado, threadId o valor será herdado do contexto em que o Stageview colaborativo é aberto. Observação: o parâmetro opcional threadId só é compatível com threads de chat. Se um canal threadId for usado, o painel lateral não será exibido. |
| openMode | Cadeia de caracteres | 2048 | Opcional | A propriedade define o comportamento de abertura para o conteúdo do estágio no cliente de desktop. |
Invocar a partir de um link profundo
Para invocar o Stageview por meio de um link profundo de sua guia ou aplicativo pessoal, encapsule o URL do link profundo na API app.openLink(url) e defina a openMode propriedade para que o conteúdo do chat seja aberto. Quando a propriedade openMode não é especificada, a resposta do Stageview de um link profundo é padronizada para o Stageview colaborativo.
Para exibir um chat específico no painel lateral, você deve especificar um threadIdarquivo . Caso contrário, a conversa do painel lateral trará o chat em grupo ou o thread do canal do qual o link profundo é invocado.
Observação
- Todos os links profundos devem ser codificados antes de você colar a URL. Não há suporte para URLs não codificadas.
- Ao invocar o Stageview de um determinado contexto, certifique-se de que seu aplicativo funcione nesse contexto.
- Ao adicionar um threadId, verifique se o aplicativo funciona no contexto do threadId passado. Se o contexto falhar, a experiência retornará ao contexto pessoal.
Sintaxe
Sintaxe de link profundo para o Stageview colaborativo:
https://teams.microsoft.com/l/stage/{appId}/0?context={"contentUrl":"contentUrl","websiteUrl":"websiteUrl","name":"Contoso","openMode":"popoutWithChat","threadId":"threadId"}
Sintaxe de link profundo codificado para o 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
Exemplo
URL de link profundo codificado para invocar o Collaborative Stageview:
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
Parâmetros de consulta de link profundo
| Nome da propriedade | Tipo | Limite de caracteres | Obrigatório | Descrição |
|---|---|---|---|---|
| entityId | Cadeia de caracteres | 64 | Opcional | Uma ID exclusiva da entidade que a guia exibe. |
| appId | Cadeia de caracteres | 64 | Sim | A ID do aplicativo Teams que deve ser aberto. Para obter mais informações, consulte ID do aplicativo para diferentes tipos de aplicativos. |
| nome | Cadeia de caracteres | 128 | Opcional | O nome de exibição da guia na interface de canal. Se nenhum valor for fornecido, o nome do aplicativo será exibido. |
| contentUrl | Cadeia de caracteres | 2048 | Sim | A URL https:// que aponta para a interface do usuário da entidade a ser exibida no Teams. |
| websiteUrl | Cadeia de caracteres | 2048 | Sim | A URL https:// a ser apontada, se um usuário selecionar exibir em um navegador. |
| threadId | Cadeia de caracteres | 2048 | Opcional | O ID define a conversa mostrada no painel lateral do Stageview colaborativo. Se no for passado, threadId o valor será herdado do contexto em que o Stageview colaborativo é aberto. Observação: o parâmetro opcional threadId só é compatível com threads de chat. Se um canal threadId for usado, o painel lateral não será exibido. |
| openMode | Cadeia de caracteres | 2048 | Opcional | A propriedade define o comportamento de abertura para o conteúdo do estágio no cliente de desktop. |
Se você deseja facilitar a multitarefa, aprimorar a colaboração ou fornecer uma experiência de usuário focada, o Stageview tem um modo para atender às suas necessidades.
Perguntas Frequentes
Qual Stageview devo usar?
O Collaborative Stageview permite que os usuários abram o conteúdo junto com uma conversa do painel lateral em uma janela do Teams. Essa exibição é mais adequada para a maioria dos cenários de colaboração.
Qual é a diferença entre o Stageview Modal e as caixas de diálogo?
O Stageview Modal é útil para exibir conteúdo rico para os usuários, como página, dashboard ou arquivo.
As caixas de diálogo (chamadas de módulos de tarefas no TeamsJS v1.x) são úteis para exibir mensagens que precisam da atenção dos usuários ou coletar informações necessárias para passar para a próxima etapa.
Quando o Stageview é invocado, o conteúdo é aberto no Stageview Colaborativo, mas é carregado na janela principal do Teams em vez de em uma nova janela. Como abrir o conteúdo em uma nova janela?
Certifique-se de que seu contentUrl domínio seja refletido com precisão na propriedade manifest validDomains . Para obter mais informações, consulte Esquema de manifesto do aplicativo.
Por que nenhum conteúdo é exibido em uma nova janela do Teams, mesmo quando 'contentUrl' corresponde a 'validDomains'?
Chame app.notifySuccess() todo o conteúdo baseado em iframe para notificar o Teams de que seu aplicativo foi carregado com êxito. Se aplicável, o Teams oculta o indicador de carregamento. Se notifySuccess não for chamado em 30 segundos, o Teams presume que o aplicativo atingiu o tempo limite e exibe uma tela de erro com uma opção de repetição. Para atualizações de aplicativo, esta etapa é aplicável para guias que já estão configuradas. Se você não executar esta etapa, uma tela de erro será exibida para os usuários existentes.
Posso incluir um link profundo no meu 'contentUrl'?
Não, não há suporte para links profundos no contentUrl.
Como fazer para manter uma conversa específica exibida ao lado do meu conteúdo?
O Stageview colaborativo de um link profundo ou de uma API stageView vem com o parâmetro adicional threadId . Você pode definir explicitamente o thread de chat a ser exibido no painel lateral para seu arquivo .contentUrl Para obter mais informações sobre como recuperar um threadId, consulte Obter thread de conversa.
Exemplo de código
| Nome do exemplo | Descrição | .NET | Node.js |
|---|---|---|---|
| Guia Teams Stageview | Este aplicativo de exemplo demonstra o uso da guia Teams no modo de exibição de estágio usando C#, apresentando recursos colaborativos e elementos interativos. | View | Exibir |