Biblioteca de clientes JavaScript do Teams
A biblioteca de clientes JavaScript do Microsoft Teams (TeamsJS) pode ajudá-lo a criar experiências hospedadas no Teams, aplicativo Microsoft 365 e Outlook, onde o conteúdo do aplicativo está hospedado em um iFrame. A biblioteca é útil para desenvolver aplicativos com os seguintes recursos do Teams:
A partir da versão 2.0.0
, a biblioteca do TeamsJS existente (@microsoft/teams-js
ou simplesmente TeamsJS
) foi refatorada para permitir que os aplicativos do Teams sejam executados no Outlook e no aplicativo Microsoft 365, além do Microsoft Teams. De uma perspectiva funcional, a versão mais recente do TeamsJS dá suporte a todas as funcionalidades de aplicativo do Teams existentes (v.1.x.x), ao mesmo tempo em que adiciona a capacidade opcional de hospedar aplicativos do Teams no Outlook e no aplicativo Microsoft 365.
Aqui estão as diretrizes de controle de versão atuais para vários cenários de aplicativo:
Versão do TeamsJS | Versão do Manifesto do aplicativo | Próximas etapas | |
---|---|---|---|
Aplicativos do Teams estendidos ao Microsoft 365 / Outlook | TeamsJS v.2.0 ou posterior | 1.13 ou posterior | Estender um aplicativo do Teams para ser executado no Microsoft 365 ou Criar um novo aplicativo do Microsoft 365 |
Aplicativos apenas Teams existentes | Atualizar para o TeamsJS v.2.0 quando possível (a v.1.12 ainda tem suporte*) | 1.12 | Entender a compatibilidade com versões anteriores do TeamsJSe Atualizar para o TeamsJS v.2.0 |
Novos aplicativos apenas Teams | TeamsJS v.2.0 ou posterior | 1.12 | Criar um novo aplicativo Teams usando o Kit de Ferramentas do Teams |
*Use o TeamsJS mais recente (v.2.0 ou posterior) sempre que possível, a fim de aproveitar as melhorias mais recentes e o suporte a novos recursos, incluindo aplicativos somente do Teams. TeamsJS v.1.12 continuam com suporte, no entanto, nenhum novo recurso ou melhorias será adicionado. Os esquemas 1.12 e 1.13 são os mesmos. Para obter mais informações, confira Biblioteca do TeamsJS.
O restante deste artigo ajudará você a percorrer a estrutura e as atualizações mais recentes para a biblioteca do TeamsJS.
Suporte ao Microsoft 365 (executando aplicativos do Teams no Microsoft 365 e Outlook)
O TeamsJS v.2.0 introduz a capacidade de determinados tipos de aplicativos do Teams serem executados em todo o ecossistema do Microsoft 365. Atualmente, outros hosts de aplicativos do Microsoft 365 (incluindo o aplicativo Microsoft 365 e o Outlook) para aplicativos do Teams dão suporte a um subconjunto dos tipos de aplicativo e recursos que você pode criar para a plataforma do Teams. Esse suporte se expandirá ao longo do tempo. Para obter um resumo do suporte de host para aplicativos do Teams, consulte Estender aplicativos do Teams no Microsoft 365.
A tabela a seguir lista as guias e os recursos de diálogos do Teams (módulos de tarefa) (namespaces públicos) com suporte expandido para execução em outros hosts do Microsoft 365.
Dica
Você pode verificar o suporte de host de uma determinada funcionalidade em runtime chamando a função isSupported()
nessa funcionalidade (namespace).
Recursos | Suporte do host | Observações |
---|---|---|
aplicativo | Teams, Outlook, Microsoft 365, aplicativo Microsoft 365 para Android | Namespace que representa a inicialização e o ciclo de vida do aplicativo. |
appInitialization | Depreciado. Substituído pelo namespace app . |
|
appInstallDialog | Teams, Microsoft 365 | |
autenticação | Teams, Outlook, Microsoft 365, aplicativo Microsoft 365 para Android | |
calendar | Outlook (somente área de trabalho do Windows) | |
call | Teams | |
chat | Teams | |
caixa de diálogo | Teams, Outlook, Microsoft 365 | Namespace que representa diálogos (anteriormente denominados módulos de tarefas. Consulte as anotações Caixas de Diálogo. |
Geolocalização | ||
localização | Teams | Consulte as anotações em Permissões do aplicativo. |
Outlook (somente área de trabalho do Windows) | ||
mídia | Teams | Consulte as anotações em Permissões do aplicativo. |
Menus | Teams | |
Monetização | Teams | |
páginas | Teams, Outlook, Microsoft 365, aplicativo Microsoft 365 para Android | Namespace que representa a navegação de página. Consulte as anotações em Vinculação profunda. |
people | Teams | |
perfil | ||
search | ||
compartilhamento | Teams | |
settings | Depreciado. Substituído por pages.config . |
|
stageView | Teams | |
tarefas | Depreciado. Substituído pela funcionalidade dialog . Consulte as anotações em Caixas de Diálogo. |
|
teamsCore | Teams | Namespace que contém a funcionalidade específica do Teams. |
video | Teams | |
WebStorage | Teams |
Permissões de aplicativos
Os recursos do aplicativo que exigem que o usuário conceda permissões de dispositivo (como localização) ainda não têm suporte para aplicativos em execução fora do Teams. No momento, não há como verificar permissões de aplicativo em Configurações ou no cabeçalho do aplicativo ao executar no Outlook ou no aplicativo Microsoft 365. Se um aplicativo do Teams em execução no aplicativo Microsoft 365 ou outlook chamar uma API do TeamsJS (ou HTML5) que dispara permissões de dispositivo, essa API gerará um erro e não exibirá uma caixa de diálogo do sistema solicitando o consentimento do usuário.
Por enquanto, as diretrizes atuais são modificar seu código para detectar a falha:
- Verifique isSupported() em um recurso antes de usá-lo.
media
,meeting
efiles
ainda não dá suporte a chamadas com suporte para isSupported e ainda não funcionam fora do Teams. - Capture e manipule erros ao chamar APIs TeamsJS e HTML5.
Quando uma API não tem suporte ou gera um erro, adiciona lógica para falhar normalmente ou fornece uma solução alternativa. Por exemplo:
- Direcione o usuário para o site do seu aplicativo.
- Direcione o usuário a usar o aplicativo no Teams para concluir o fluxo.
- Notifique o usuário de que a funcionalidade ainda não está disponível.
Além disso, a prática recomendada é garantir que o manifesto do aplicativo especifique apenas as permissões de dispositivo que ele está usando.
Link profundo
Antes do TeamsJS versão 2.0, todos os cenários de vinculação profunda eram tratados usando o shareDeepLink
(para gerar um link para uma parte específica do seu aplicativo) e executeDeepLink
(para navegar até um deeplink de ou dentro do seu aplicativo). O TeamsJS v.2.0 apresenta uma nova API, navigateToApp
, para navegar até páginas (e subpages) em um aplicativo de forma consistente entre hosts de aplicativos (aplicativo Microsoft 365 e Outlook, além do Teams). Aqui estão as diretrizes atualizadas para cenários de vinculação profunda:
Links profundos para seu aplicativo
Use pages.shareDeepLink
(conhecido como shareDeepLink antes do TeamsJS v.2.0) para gerar e exibir um link copiável para o usuário compartilhar. Quando clicado, um usuário será solicitado a instalar o aplicativo se ele ainda não estiver instalado para o host do aplicativo (especificado no caminho do link).
Navegação em seu aplicativo
Use o novo pages.currentApp
namespace para navegar dentro do aplicativo no aplicativo de hospedagem. Especificamente, a função navigateTo(NavigateWithinAppParams)
para permitir a navegação para uma guia específica dentro do aplicativo atual e a função navigateToDefaultPage()
para navegar até a primeira guia definida no manifesto do aplicativo. Para obter mais informações, consulte Navegar em um aplicativo de guias.
Essas APIs fornecem o equivalente a navegar até um link profundo (como o executeDeepLink agora preterido já foi usado) sem exigir que seu aplicativo construa uma URL ou gerencie diferentes formatos de link profundo para diferentes hosts de aplicativo.
Links profundos fora do seu aplicativo
Para links profundos do aplicativo para várias áreas do host atual, use as APIs fortemente tipada fornecidas pela biblioteca do TeamsJS. Por exemplo, use a funcionalidade Calendário para abrir uma caixa de diálogo de agendamento ou item de calendário do seu aplicativo.
Para links profundos do seu aplicativo para outros aplicativos em execução no mesmo host, use pages.navigateToApp
.
Para qualquer outro cenário de vinculação profunda externa, você pode usar o app.openLink
, que fornece funcionalidade semelhante à agora preterida (começando no TeamsJS v.2.0) API executeDeepLink.
Caixas de Diálogo
A partir da versão 2.0 do TeamsJS, o conceito de módulo de tarefa da plataforma do Teams foi renomeado Caixa de diálogo para melhor consistência com os conceitos existentes em todo o ecossistema dos desenvolvedores do Microsoft 365. Da mesma forma, o namespace tasks
foi preterido em favor do novo namespace dialog
.
Essa nova funcionalidade de caixa de diálogo é dividida em um recurso principal (dialog
) para dar suporte a diálogos baseados em HTML e uma subfuncionalidade, dialog.bot
, para desenvolvimento de diálogo baseado em bot.
O recurso de caixa de diálogo ainda não dá suporte a caixas de diálogo de cartão adaptável. Os diálogos baseados em cartão adaptável ainda precisam ser invocados usando tasks.startTask()
.
A função dialog.open
atualmente só funciona para abrir caixas de diálogo baseadas em HTMl, e retorna uma função de retorno de chamada (PostMessageChannel
) que você pode usar para passar mensagens (ChildAppWindow.postMessage
) para a caixa de diálogo recém-aberta. dialog.open
retorna um retorno de chamada (em vez de uma Promessa) porque não requer que a execução do aplicativo pause aguardando o fechamento da caixa de diálogo (fornecendo assim mais flexibilidade para vários padrões de interação do usuário).
Novidades no TeamsJS versão 2.x.x
Há duas alterações significativas entre as versões do TeamsJS 1.x.x e a v.2.0.0 e posterior:
As funções de retorno de chamada agora retornam objetos Promise. A maioria das funções com parâmetros de retorno de chamada no TeamsJS v.1.12 foi modernizada para retornar um objeto JavaScript Promise para melhor manipulação de operações assíncronas e legibilidade de código.
As APIs agora estão organizadas em recursos. Você pode pensar em recursos como agrupamentos lógicos de APIs que fornecem funcionalidades semelhantes, como
authentication
,dialog
,chat
ecalendar
. Cada namespace representa uma funcionalidade separada.
Dica
Você pode usar a extensão Kit de ferramentas do Teams para Microsoft Visual Studio Code para simplificar o TeamsJS v.2.0 para um aplicativo do Teams existente.
Compatibilidade com versões anteriores
Depois de começar a referenciar @microsoft/teams-js@2.0.0
(ou posterior) a partir de um aplicativo existente do Teams, você verá avisos de substituição para todas as APIs de chamada de código que foram alteradas.
Uma camada de tradução de API (mapeamento v.1 para chamadas de API do TeamsJS v.2) é fornecida para permitir que os aplicativos do Teams existentes continuem trabalhando no Teams até que eles possam atualizar o código do aplicativo para usar os padrões de API do TeamsJS v.2.
Aplicativos apenas Teams
Mesmo que você pretenda que seu aplicativo seja executado apenas no Teams (e não no aplicativo Microsoft 365 e no Outlook), a melhor prática é começar a referenciar o TeamsJS mais recente (v.2.0 ou posterior) assim que conveniente, a fim de se beneficiar das melhorias mais recentes, novos recursos e suporte (mesmo para aplicativos somente do Teams). O TeamsJS v.1.12 continuará a ter suporte, mas nenhum novo recurso ou melhoria será adicionado.
Quando você conseguir, a próxima etapa será atualizar o código do aplicativo existente com as alterações descritas neste artigo. Enquanto isso, a camada de conversão de API v.1 a v.2 fornece compatibilidade com versões anteriores, garantindo que seu aplicativo do Teams existente continue funcionando no TeamsJS versão 2.0.
Aplicativos do Teams em execução no Microsoft 365
Habilitar um aplicativo do Teams existente para ser executado no Outlook e no Microsoft 365 requer todos os seguintes procedimentos:
Dependência do TeamsJS versão 2.x.x (
@microsoft/teams-js@2.0.0
) ou posterior,Modificar o código do aplicativo existente de acordo com as alterações necessárias descritas neste documento.
Atualizar o manifesto do aplicativo para a versão 1.13 ou posterior.
Para obter mais informações, consulte Estender aplicativos do Teams no Microsoft 365.
Retornos de chamada convertidos em promessas
APIs do Teams que anteriormente levavam um parâmetro de retorno de chamada foram atualizadas para retornar um objeto JavaScript Promise. Elas incluem as seguintes APIs:
app.getContext, app.initialize, appInstallDialog.openAppInstallDialog, app.openLink, authentication.authenticate, authentication.getAuthToken, authentication.getUser, authentication.registerAuthenticationHandlers was removed to support using Promises, calendar.openCalendarItem, calendar.composeMeeting, call.startCall, chat.getChatMembers, conversations.openConversation, location.getLocation, location.showLocation, mail.openMailItem, mail.composeMail, pages.backStack.navigateBack, pages.navigateCrossDomain, pages.navigateToTab, pages.tabs.getMruTabInstances, pages.tabs.getTabInstances, pages.getConfig, pages.config.setConfig, pages.backStack.navigateBack, people.selectPeople, teams.fullTrust.getConfigSetting, teams.fullTrust.joinedTeams.getUserJoinedTeams
Você precisará atualizar a maneira como seu código chama qualquer uma dessas APIs para usar o Promises. Por exemplo, se o código estiver chamando uma API Teams como esta:
Este código:
import microsoftTeams from "@microsoft/teams-js";
microsoftTeams.getContext((context) => { /* ... */ });
Precisa ser atualizado para:
import { app, Context } from "@microsoft/teams-js";
app.getContext().then((context) => {
/*...*/
});
... ou o padrão async/await
equivalente:
import { app, Context } from "@microsoft/teams-js";
async function example() {
const context = await app.getContext();
/*...*/
}
Dica
Quando você usa o Kit de ferramentas do Teams para atualizar para o TeamsJS v.2.0, as atualizações necessárias são sinalizadas para você com TODO
comentários no código do cliente.
APIs organizadas em funcionalidades
Uma funcionalidade é um agrupamento lógico de APIs que fornecem funcionalidade semelhante. Você pode pensar no aplicativo Microsoft Teams, Outlook e Microsoft 365, como hosts para seu aplicativo de guias. Um host dá suporte a uma determinada funcionalidade se ele dá suporte a todas as APIs definidas dentro dessa funcionalidade. Um host não pode implementar parcialmente uma funcionalidade. Os recursos podem ser baseados em recursos ou conteúdo, como diálogo autenticação ou caixa de diálogo. Também há recursos para tipos de aplicativo, como páginas e outros agrupamentos.
Na Versão Prévia do SDK do TeamsJS v2.0, as APIs são definidas como funções em um namespace JavaScript cujo nome corresponde à funcionalidade necessária. Se um aplicativo estiver em execução em um host que dê suporte à funcionalidade caixa de diálogo, o aplicativo poderá chamar APIs com segurança, como dialog.open
(além de outras APIs relacionadas à caixa de diálogo definidas no namespace). Se um aplicativo tentar chamar uma API que não tem suporte nesse host, a API gera uma exceção. Para verificar se o host atual que está executando seu aplicativo dá suporte a uma determinada funcionalidade, chame a função isSupported() de seu namespace.
Diferenciar sua experiência de aplicativo
Você pode verificar o suporte de host de uma determinada funcionalidade em runtime chamando a função isSupported()
nessa funcionalidade (namespace). Ela retornará true
se tiver suporte e false
, caso contrário, e você poderá ajustar o comportamento do aplicativo conforme apropriado. Isso permite que seu aplicativo ilumine a interface do usuário e a funcionalidade em hosts que dão suporte a ele, enquanto continua a ser executado para hosts que não têm.
O nome do host no qual seu aplicativo está sendo executado é exposto como uma propriedade hostName na interface de contexto (app.Context.app.host.name
), que pode ser consultada em runtime chamando getContext
. Ele também está disponível como um {hostName}
valor de espaço reservado de URL. A prática recomendada é usar o mecanismo hostName com moderação:
- Não suponha que determinada funcionalidade esteja ou não esteja disponível em um host com base no valor da propriedade hostName. Em vez disso, verifique se há suporte para funcionalidades (
isSupported
). - Não use hostName para enviar chamadas à API. Em vez disso, verifique se há suporte para funcionalidades (
isSupported
). - UsehostName para diferenciar o tema do seu aplicativo com base no host em que ele está sendo executado. Por exemplo, você pode usar Microsoft Teams púrpura como a cor de destaque principal ao executar em Teams e Outlook azul ao executar em Outlook.
- UsehostNamepara diferenciar as mensagens mostradas para o usuário com base no host em que ele está sendo executado. Por exemplo, mostre Gerenciar suas tarefas no Microsoft 365 ao executar no Microsoft 365 na Web e Gerenciar suas tarefas no Teams ao executar no Teams.
Namespaces
A partir do TeamsJS v.2.0, as APIs são organizadas em funcionalidades por meio de namespaces. Vários novos namespaces de importância específica são aplicativo, páginas, caixa de diálogo e teamsCore.
namespace do aplicativo
O app
namespace contém APIs de nível superior necessárias para o uso geral do aplicativo, entre Teams, aplicativo Microsoft 365 e Outlook. Todas as APIs de vários outros namespaces do TeamsJS foram movidas para o namespace app
a partir do TeamsJS v2.0:
Namespace original global (window) |
Novo namespace app |
---|---|
executeDeepLink |
app.openLink (renomeado) |
initialize |
app.initialize |
getContext |
app.getContext |
registerOnThemeChangeHandler |
app.registerOnThemeChangeHandler |
Namespace original appInitialization |
Novo namespace app |
---|---|
appInitialization.notifyAppLoaded |
app.notifyAppLoaded |
appInitialization.notifySuccess |
app.notifySuccess |
appInitialization.notifyFailure |
app.notifyFailure |
appInitialization.notifyExpectedFailure |
app.notifyExpectedFailure |
appInitialization.FailedReason enumeração |
app.FailedReason |
appInitialization.ExpectedFailureReason enumeração |
app.ExpectedFailureReason |
appInitialization.IFailedRequest enumeração |
app.IFailedRequest |
appInitialization.IExpectedFailureRequest enumeração |
app.IExpectedFailureRequest |
namespace de páginas
O pages
namespace inclui funcionalidade para executar e navegar páginas da Web em vários hosts do Microsoft 365, incluindo Teams, aplicativo Microsoft 365 e Outlook. Ele também inclui vários sub-recursos, implementados como sub-namespaces.
Namespace original global (window) |
Novo namespace pages |
---|---|
setFrameContext |
pages.setCurrentFrame (renomeado) |
initializeWithFrameContext |
pages.initializeWithFrameContext |
registerFocusEnterHandler |
pages.registerFocusEnterHandler |
registerFullScreenHandler |
pages.registerFullScreenHandler |
navigateCrossDomain |
pages.navigateCrossDomain |
returnFocus |
pages.returnFocus |
shareDeepLink |
pages.shareDeepLink |
Namespace original settings |
Novo namespace pages |
---|---|
settings.getSettings |
pages.getConfig (renomeado) |
pages.tabs
Namespace original global (window) |
Novo namespace pages.tabs |
---|---|
getTabInstances |
pages.tabs.getTabInstances |
getMruTabInstances |
pages.tabs.getMruTabInstances |
Namespace original navigation |
Novo namespace pages.tabs |
---|---|
navigation.navigateToTab |
pages.tabs.navigateToTab |
pages.config
Namespace original settings |
Novo namespace pages.config |
---|---|
settings.setSettings |
pages.config.setConfig (renomeado) |
settings.setValidityState |
pages.config.setValidityState |
settings.initialize |
pages.config.initialize |
settings.registerOnSaveHandler |
pages.config.registerOnSaveHandler |
settings.registerOnRemoveHandler |
pages.config.registerOnRemoveHandler |
settings.Settings interface |
pages.config.Config (renomeado) |
settings.SaveEvent interface |
pages.config.SaveEvent (renomeado) |
settings.RemoveEvent interface |
pages.config.RemoveEvent (renomeado) |
settings.SaveParameters interface |
pages.config.SaveParameters (renomeado) |
settings.SaveEventImpl interface |
pages.config.SaveEventImpl (renomeado) |
Namespace original global (window) |
Novo namespace pages.config |
---|---|
registerChangeConfigHandler |
pages.config.registerChangeConfigHandler (renomeado) |
pages.backStack
Namespace original navigation |
Novo namespace pages.backStack |
---|---|
navigation.navigateBack |
pages.backStack.navigateBack |
Namespace original global (window) |
Novo namespace pages.backStack |
---|---|
registerBackButtonHandler |
pages.backStack.registerBackButtonHandler |
pages.appButton
Namespace original global (window) |
Novo namespace pages.appButton |
---|---|
registerAppButtonClickHandler |
pages.appButton.onClick (renomeado) |
registerAppButtonHoverEnterHandler |
pages.appButton.onHoverEnter (renomeado) |
registerAppButtonHoverLeaveEnter |
pages.appButton.onHoverLeave (renomeado) |
FrameContext interface |
pages.appButton.FrameInfo (renomeado)) |
namespace da caixa de diálogo
O namespace de tarefas do TeamsJS foi renomeada para caixa de diálogo e as seguintes APIs foram renomeadas:
Namespace original tasks |
Novo namespace dialog |
---|---|
tasks.startTask |
dialog.open (renomeado) |
tasks.submitTasks |
dialog.submit (renomeado) |
tasks.updateTasks |
dialog.update.resize (renomeado) |
tasks.TaskModuleDimension enumeração |
dialog.DialogDimension (renomeado) |
tasks.TaskInfo interface |
dialog.DialogInfo (renomeado) |
Além disso, essa funcionalidade foi dividida em uma funcionalidade principal (dialog
) para dar suporte a diálogos baseados em HTML e uma subfuncionalidade para diálogos baseados em bot, dialog.bot
.
namespace do teamsCore
Para generalizar a biblioteca do TeamsJS para executar outros hosts do Microsoft 365, como o aplicativo Microsoft 365 e o Outlook, a funcionalidade específica do Teams (originalmente no namespace global ) foi movida para um namespace teamsCore :
Namespace original global (window) |
Novo namespace teamsCore |
---|---|
enablePrintCapability |
teamsCore.enablePrintCapability |
print |
teamsCore.print |
registerOnLoadHandler |
teamsCore.registerOnLoadHandler |
registerBeforeUnloadHandler |
teamsCore.registerBeforeUnloadHandler |
Atualizações para a interface de Contexto
A Context
interface foi movida para o app
namespace e atualizada para agrupar propriedades semelhantes para melhor escalabilidade, pois é executada no Outlook e no aplicativo Microsoft 365, além do Teams.
Uma nova propriedade app.Context.app.host.name
foi adicionada para habilitar guias pessoais para diferenciar a experiência do usuário, dependendo do aplicativo host.
Você também pode visualizar as alterações examinando a transformLegacyContextToAppContext
função na origem do TeamsJS versão 2.x.x (arquivo app.ts ).
Nome original na interface Context |
Novo local em app.Context |
---|---|
appIconPosition |
app.Context.app.iconPositionVertical |
appLaunchId |
NÃO EXISTE NO TeamsJS v.2.0 |
appSessionId |
app.Context.app.sessionId |
channelId |
app.Context.channel.id |
channelName |
app.Context.channel.displayName |
channelRelativeUrl |
app.Context.channel.relativeUrl |
channelType |
app.Context.channel.membershipType |
chatId |
app.Context.chat.id |
defaultOneNoteSectionId |
app.Context.channel.defaultOneNoteSectionId |
entityId |
app.Context.page.id |
frameContext |
app.Context.page.frameContext |
groupId |
app.Context.team.groupId |
hostClientType |
app.Context.app.host.clientType |
hostTeamGroupId |
app.Context.channel.ownerGroupId |
hostTeamTenantId |
app.Context.channel.ownerTenantId |
isCallingAllowed |
app.Context.user.isCallingAllowed |
isFullScreen |
app.Context.page.isFullScreen |
isMultiWindow |
app.Context.page.isMultiWindow |
isPSTNCallingAllowed |
app.Context.user.isPSTNCallingAllowed |
isTeamArchived |
app.Context.team.isArchived |
locale |
app.Context.app.locale |
loginHint |
app.Context.user.loginHint |
meetingId |
app.Context.meeting.id |
osLocaleInfo |
app.Context.app.osLocaleInfo |
parentMessageId |
app.Context.app.parentMessageId |
ringId |
app.Context.app.host.ringId |
sessionId |
app.Context.app.host.sessionId |
sourceOrigin |
app.Context.page.sourceOrigin |
subEntityId |
app.Context.page.subPageId |
teamId |
app.Context.team.internalId |
teamSiteDomain |
app.Context.sharepointSite.domain |
teamSitePath |
app.Context.sharepointSite.path |
teamSiteUrl |
app.Context.sharepointSite.url |
teamTemplateId |
app.Context.team.templateId |
teamType |
app.Context.team.type |
tenantSKU |
app.Context.user.tenant.teamsSku |
tid |
app.Context.user.tenant.id |
upn |
app.Context.user.userPrincipalName |
userClickTime |
app.Context.app.userClickTime |
userFileOpenPreference |
app.Context.app.userFileOpenPreference |
userLicenseType |
app.Context.user.licenseType |
userObjectId |
app.Context.user.id |
userTeamRole |
app.Context.team.userRole |
NA | app.Context.app.host.name |
Atualização para o TeamsJS versão 2.0
A maneira mais fácil de atualizar seu aplicativo teams com o TeamsJS versão 2.0.x é usar a extensão do Teams Toolkit para Visual Studio Code. Esta seção orientará você pelas etapas para fazer isso. Se você preferir atualizar manualmente seu código, consulte os Retornos de Chamada convertidos em promessas e APIs organizadas em seções de funcionalidades para obter mais detalhes sobre as alterações de API necessárias.
1. Instale a extensão mais recente do kit de ferramentas do Teams Visual Studio Code
No Visual Studio Code Extensions Marketplace, pesquise o Teams Toolkit e instale a versão mais recente.
2. Atualizar referências do TeamsJS
Para ser executado no Outlook e no aplicativo Microsoft 365, seu aplicativo precisará depender do pacote @microsoft/teams-js@2.0.0
npm (ou posterior). Para executar essas etapas manualmente e para obter mais informações sobre as alterações de API, consulte as seções a seguir sobre retornos de chamada convertidos em promessas e APIs organizadas em funcionalidades.
- Verifique se você tem o kit de ferramentas mais recente do Teams (versão 2.10.0 ou posterior)
- Abra a paleta de comandos:
Ctrl+Shift+P
- Execute o comando
Teams: Upgrade Teams JS SDK references to support Outlook and Microsoft 365 apps
.
Após a conclusão, o utilitário terá atualizado seu package.json
arquivo com a dependência do TeamsJS versão 2.x.x (@microsoft/teams-js@2.0.0
ou posterior) e seus *.js/.ts
arquivos e *.jsx/.tsx
serão atualizados com:
package.json
referências ao TeamsJS versão 2.x.x- Importar instruções para o TeamsJS versão 2.x.x
- Chamadas de função, Enum e Interface para o TeamsJS versão 2.x.x
TODO
lembretes de comentário para examinar áreas que podem ser afetadas por alterações de contextoTODO
lembretes de comentário para converter funções de retorno de chamada em promessas
Importante
O código dentro de arquivos html não é suportado pelas ferramentas de atualização e exigirá alterações manuais.
3. Atualizar o manifesto (opcional)
Se você estiver atualizando um aplicativo do Teams para ser executado no aplicativo Microsoft 365 e no Outlook, também precisará atualizar o manifesto do aplicativo para a versão 1.13 ou posterior. Você pode fazer isso facilmente com o Kit de ferramentas do Teams ou manualmente.
- Abra a paleta de comandos:
Ctrl+Shift+P
- Executar o Teams: atualize o manifesto do Teams para dar suporte ao comando de aplicativos do Outlook e do Microsoft 365 e selecione o arquivo de manifesto do aplicativo. As alterações serão feitas em vigor.
Se você usou o kit de ferramentas do Teams para criar seu aplicativo pessoal, também poderá usá-lo para validar as alterações no arquivo de manifesto e identificar erros. Abra a paleta de comandos Ctrl+Shift+P
e localize o Teams: valide o arquivo de manifesto ou selecione a opção no menu Implantação do Kit de Ferramentas do Teams (procure o ícone do Teams no lado esquerdo do Visual Studio Code).
Próximas etapas
- Use a referência da biblioteca do TeamsJS para começar a usar a biblioteca do TeamsJS.
- Examine o changelog para obter atualizações mais recentes no TeamsJS.