跨 Microsoft 365 的 TeamsJS 功能支持
从版本 2.0.0 开始,Microsoft Teams JavaScript 客户端库 (TeamsJS) 使 某些类型的 Teams 应用 能够在 Microsoft 365 生态系统中运行。 Microsoft可以托管 Teams 应用的 365 应用程序 (Microsoft 365 应用和 Outlook) 仅支持可为 Teams 平台生成的部分应用程序类型和功能。 此支持会随着时间的推移而扩展。
本文详细介绍了跨各种主机应用程序对 TeamsJS 版本 2.x 功能的支持级别。 有关 TeamsJS 版本 1.x 和 2.x 之间的更改的详细信息,请参阅 TeamsJS 版本 2.x.x 中的新增功能。
以下 TeamsJS 功能 表列出了 (公共命名空间的 TeamsJS 功能) 及其跨 Microsoft 365 主机应用程序的支持。 某些功能标有 “已弃用 ”或 “预览” 锁屏提醒,其含义如下:
徽章 | 含义 |
---|---|
此功能为预览版,可能会根据反馈进行更改。 请勿在生产环境中使用此功能。 | |
为了支持较新的功能,此功能已弃用,但出于向后兼容性目的,支持此功能。 对于新应用,请使用已弃用功能的使用说明中建议的功能。 |
Microsoft 365 台主机由下表中的产品图标表示:
Teams | Microsoft 365 应用 | Outlook |
---|---|---|
有关新 Teams 和 Outlook 的详细信息,请参阅 Outlook 博客 和 Teams 采用。
使用下表选择任何 TeamsJS 功能以获取更多详细信息,包括参考文档、示例、使用说明和限制。
注意
下表中的信息派生自使用 TeamsJS v2.24 进行的测试和测试期间提供的最新主机版本。 支持可能因后续主机修改而异。 提供这些表可帮助你了解跨主机的功能支持,但是,始终确保使用代码中的相关 isSupported()
调用来验证支持。
跨主机功能
下表列出了对可在 Teams 外部运行的 TeamsJS 功能的主机应用程序支持。
TeamsJS 功能 | Web | 桌面 | 移动设备 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
应用程序 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
appInstallDialog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
身份验证 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
calendar | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
call | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
对话框 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
✓ | ✓ | ✓ | ✓ | ||||||||||||
pages | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
secondaryBrowser | ✓ | ✓ | ✓ | ✓ |
仅限 Teams 的功能
下表列出了对仅在 Teams 环境中运行的 TeamsJS 功能的支持。
TeamsJS 功能 | Web | 桌面 | 移动设备 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
appInitialization | ✓ | ✓ | ✓ | ✓ | |||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
菜单 | ✓ | ✓ | ✓ | ||||||||||||
people | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
设置 | ✓ | ✓ | ✓ | ✓ | |||||||||||
共享 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
stageView | ✓ | ✓ | ✓ | ✓ | |||||||||||
任务 | ✓ | ✓ | ✓ | ✓ | |||||||||||
teamsCore | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
✓ | ✓ | ||||||||||||||
webStorage | ✓ | ✓ | ✓ |
等待主机支持的预览功能
源中的某些功能处于早期预览状态,仍在等待一个或多个主机应用程序(包括 barCode、 媒体和 会议)的初始支持。
本文的后面部分提供了有关 Teams JavaScript 客户端库的每个功能的详细信息。
app
Namespace与应用初始化和生命周期进行交互。
命名空间 app
在所有应用程序主机上受到全局支持,因此没有 isSupported
函数。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
应用 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
appInitialization
已弃用。 用于初始化应用的Namespace。 对于新应用,请使用应用功能中的app.initialize () 。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
appInitialization | ✓ | ✓ | ✓ | ✓ |
appInstallDialog
Namespace用于打开用于安装应用程序的对话框。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
appInstallDialog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
authentication
Namespace与库的身份验证相关部分进行交互。 此模块用于启动或完成身份验证流。
命名空间 authentication
在所有应用程序主机上受到全局支持,因此没有 isSupported
函数。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
身份验证 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
barCode
预览。 Namespace与库的条形码扫描相关部分进行交互。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
barCode 徽章 |
calendar
Namespace提供与日历相关的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
日历 | ✓ | ✓ | ✓ | ✓ | ✓ |
call
Namespace提供与其他人发起通话的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
通话 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
chat
预览。 Namespace提供与他人开始聊天的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
clipboard
预览。 此功能使用户能够复制并粘贴到系统剪贴板。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
dialog
预览。 这组功能使应用能够显示 TeamsJS v1.x) 中称为任务模块 (模式对话框。 对话主要有两种类型:基于 URL 的对话和自适应卡片对话。 这两种类型的对话框都显示在应用顶部,从而阻止在应用显示时与应用交互。
- 通过基于 URL 的对话,可以指定在对话框中显示内容的 URL。 对于 URL 对话框,请使用 url 命名空间中的函数和接口。
- 基于自适应卡片的对话允许你提供 JSON 来描述对话框中显示的自适应卡片。 对于“自适应卡片”对话框,请使用 adaptiveCard 命名空间中的函数和接口。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
对话框 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
dialog.adaptiveCard | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
dialog.adaptiveCard.bot | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
dialog.update | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
dialog.url | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
dialog.url.bot | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
dialog.adaptiveCard
预览。 与自适应卡片对话框交互的子能力。
dialog.adaptiveCard.bot
预览。 与需要与 Bot Framework 通信的自适应卡片对话框交互的子能力。
dialog.update
预览。 用于更新对话框的Namespace。
dialog.url
预览。 与基于 HTML 的对话交互的子能力。
dialog.url.bot
预览。 用于与需要与 Bot Framework 通信的基于 HTML 的对话进行交互的子能力。
geoLocation
预览。 Namespace提供与位置相关的功能。 这是位置模块的较新版本。
在 Teams 外部运行的应用部分支持要求用户授予 设备权限 (功能(例如 geoLocation) )。 在 Outlook 和 Microsoft 365 应用中运行时,用户可以从应用标头调整应用权限,也可以从移动设备上的应用设置调整应用权限。 建议修改代码以检查 Outlook 和 Microsoft 365 的可支持性:
- 在使用功能之前,请调用
isSupported
该功能。 - 在调用 TeamsJS 和 HTML5 API 时捕获和处理错误
当 API 不支持或生成错误时,请添加逻辑以失败或提供解决方法。 例如:
- 将用户定向到应用的网站
- 指示用户使用 Teams 中的应用来完成流
- 通知用户该功能尚不可用
提示
确保应用清单仅指定它使用的设备权限。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
geoLocation.map | ✓ | ✓ |
geoLocation.map
预览。 提供与地图相关的功能的子能力。
location
已弃用。 Namespace提供位置相关功能 (获取和显示位置) 。 对新应用使用 geoLocation 。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
mail
Namespace提供与电子邮件相关的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ |
media
Namespace提供图像文件相关功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
媒体 |
meeting
Namespace提供会议内应用功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
会议 |
注意
Teams 移动客户端不支持以下方法:
meeting.requestStartLiveStreaming
meeting.requestStopLiveStreaming
meeting.getLiveStreamState
meeting.registerLiveStreamChangedHandler
menus
Namespace与库的菜单相关部分进行交互。 此模块用于显示 视图配置、 操作菜单和 导航栏菜单。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
菜单 | ✓ | ✓ | ✓ |
pages
TeamsJS 库的导航相关部分。
在 TeamsJS 版本 2.0 之前,所有深层链接方案都使用 shareDeepLink
(来处理,以生成指向应用特定部分的链接,) 并 executeDeepLink
(导航到应用) 中的深层链接。 TeamsJS v.2.0 引入了一个新的 API, navigateToApp
用于在应用主机 (Microsoft 365 应用和 Outlook 之间以一致的方式导航到应用内的页面 (和子) 页面,以及 Teams) 。 对于新应用,请遵循链接的更新指南,具体取决于导航方案:
指向应用的深层链接。 使用
pages.shareDeepLink
(在 TeamsJS v.2.0 之前称为 shareDeepLink)生成并显示可复制链接供用户共享。 选择后,如果尚未为应用程序主机安装应用,系统会提示用户安装该应用。应用中的导航。 使用新
pages.currentApp
命名空间在托管应用程序中的应用内导航。 具体而言,用于允许导航到当前应用中的特定选项卡的函数navigateTo(NavigateWithinAppParams)
,以及允许导航到应用清单中定义的第一个选项卡的函数navigateToDefaultPage()
。 有关详细信息,请参阅 在选项卡应用中导航。这些 API 提供与导航到深层链接 (等效,因为现在弃用的 executeDeepLink 曾经用于) ,而无需应用为不同的应用程序主机构造 URL 或管理不同的深层链接格式。
应用的深层链接。 有关从应用到其当前主机各个区域的深层链接,请使用 TeamsJS 库提供的类型化 API。 例如,使用
calendar
功能从应用打开计划对话框或日历项。对于从应用到同一主机中运行的其他应用的深层链接,请使用
pages.navigateToApp
。对于任何其他外部深层链接方案,可以使用
app.openLink
,它提供与现已弃用的(从 TeamsJS v.2.0 开始)executeDeepLink API 类似的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
pages | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pages.appButton | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
pages.backStack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
pages.currentApp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
pages.config | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
pages.tabs | ✓ | ✓ | ✓ | ✓ |
注意
Teams 移动客户端不支持以下方法:
pages.getConfig
pages.setCurrentFrame
pages.initializeWithFrameContext
pages.tabs.navigateToTab
pages.tabs.getMruTabInstances
pages.tabs.getTabInstances
pages.appButton
提供与 SDK 的应用按钮部分进行交互的 API。
pages.backStack
提供用于处理用户导航历史记录的 API。
pages.config
提供 API,用于与 SDK 的配置特定部分进行交互。 此对象仅在配置帧上可用。
pages.currentApp
提供无需指定应用程序 ID 即可导航的函数。
pages.tabs
提供用于在应用程序的上下文选项卡之间查询和导航的 API。 与个人选项卡不同,上下文选项卡是与特定上下文(如频道或聊天)关联的页面。
people
Namespace为 人员选取器 API 提供功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
people | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
profile
预览。 Namespace提供与配置文件相关的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ |
注意
profile.showProfile
Teams 移动客户端不支持 方法。
search
预览。 允许应用程序与主机交互Microsoft 365 应用程序的搜索框。 通过将应用程序与主机的搜索框集成,用户可以使用他们在 Teams、Outlook 或 Microsoft 365 应用中其他位置使用的相同搜索框搜索你的应用。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
secondaryBrowser
预览。 Namespace支持主机应用的应用内浏览器体验。 例如,在浏览器内的主机应用中打开 URL。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
secondaryBrowser | ✓ | ✓ | ✓ | ✓ |
settings
已弃用。 提供与设置相关的功能。 对新应用使用 页面中 的等效 API。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
设置 | ✓ | ✓ | ✓ | ✓ |
sharing
Namespace打开 Web 内容的共享对话框。 有关详细信息,请参阅 个人应用或选项卡的“共享到 Teams”。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
共享 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
注意
sharing.shareWebContent
Teams 移动客户端不支持 方法。
stageView
预览。 Namespace与库的 Stageview 特定部分进行交互。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
stageView | ✓ | ✓ | ✓ | ✓ |
tasks
用于提供模式对话框 (TeamsJS v1.x 中称为任务模块的早期版本) 支持 TeamsJS v2.8.0 之前的版本。 对于新应用,请使用 对话框 功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
任务 | ✓ | ✓ | ✓ | ✓ |
注意
task.getDefaultSizeIfNotProvided
Teams 移动客户端不支持 方法。
teamsCore
Namespace包含支持 Teams 特定功能的 API 集。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
teamsCore | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
video
预览。 表示会议内视频效果功能的Namespace。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ |
注意
Teams 移动客户端不支持以下方法:
video.notifySelectedVideoEffectChanged
video.registerForVideoEffect
webStorage
预览。 包含允许 Web 应用在 Webview 缓存中存储数据的功能。
Web | 桌面 | 移动设备 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Android | iOS | |||||||||||||
✓ | ✓ | ✓ |
注意
webStorage.isWebStorageClearedOnUserLogOut
Teams 移动客户端不支持 方法。