Как вы, вероятно, уже видели, звонок на microsoftTeams.getContext(...)
никогда не возвращается, если вы не в командах.
Поэтому у меня есть флаг, который я отслеживаю с setInterval
и если this._teamsContext
верно и имеет вменяемые значения; и только если if имеет this._hasAttemptedConnection
Это немного обходной путь.
Еще один механизм, который я реализовал чуть позже, передавал флаг с точкой входа URL ( в нашем случае: это вкладка «Команды» https://<oururl>?context=teams
и используется только кодовый путь команд в командах.
Я видел запросы в Microsoft Teams. js github для возврата ошибки из microsoftTeams.getContext(...)
см .: [есть ли какой-либо API для обнаружения работы в командах или нет?] [1]
До флага у меня был некоторый код Typescript, который выглядит как
WireTeams(): Promise<boolean> {
this._hasAttemptedConnection = false
return new Promise<boolean>((resolve, reject) => {
microsoftTeams.initialize()
microsoftTeams.getContext((context) => {
if (context === null || context === undefined) {
resolve(false)
}
this._teamsContext = context
})
})
this._hasAttemptedConnection = true
}
[1]: https://github.com/OfficeDev/microsoft-teams-library-js/issues/310