如何实现Microsoft Teams卡片按钮在应用内打开App Tab而非默认浏览器?
让Teams桌面端卡片按钮直接打开应用Tab的实现方案
我之前刚好处理过类似的需求,要解决Windows 10桌面版Teams里卡片按钮跳浏览器而不是打开应用内Tab的问题,核心是用Teams的**深层链接(deeplink)**替代普通网页URL,下面是具体的实现步骤:
1. 构造正确的Teams Tab深层链接
Teams提供了专属的deeplink格式,能直接唤起应用内的指定Tab,格式如下:
https://teams.microsoft.com/l/entity/{appId}/{entityId}?context={"subEntityId":"","channelId":"{channelId}","teamId":"{teamId}"}
参数说明:
{appId}:你的Teams应用ID(可在App Studio或Teams管理中心获取){entityId}:Tab对应的实体ID(在应用清单manifest.json的staticTabs或configurableTabs节点中定义)channelId/teamId:可选参数,如果Tab关联到特定频道/团队,需传入对应ID;个人Tab可省略或留空
2. 在MessageCard中配置按钮链接
把MessageCard按钮的target替换为上面构造的deeplink,示例代码如下:
{ "@type": "MessageCard", "@context": "http://schema.org/extensions", "summary": "打开我的应用Tab", "sections": [ { "text": "点击下方按钮直接打开应用内Tab" } ], "potentialAction": [ { "@type": "OpenUri", "name": "打开应用Tab", "targets": [ { "os": "default", "uri": "https://teams.microsoft.com/l/entity/your-app-id/your-entity-id?context={\"channelId\":\"your-channel-id\",\"teamId\":\"your-team-id\"}" } ] } ] }
3. 关键注意事项
- 确保目标用户的Teams环境中已安装你的应用,未安装时Teams会提示用户先完成安装再打开Tab
- 必须在Windows 10桌面版Teams中测试,网页版或移动端的行为可能不同,但桌面端支持直接唤起Tab
- 个人Tab的context可简化为
{"subEntityId":""},无需传入channelId和teamId
4. 常见问题排查
如果按钮仍然跳浏览器,检查以下几点:
- 确认deeplink格式无误,appId、entityId等参数没有拼写错误
- 测试环境必须是Windows 10桌面版Teams,而非网页版
- 应用清单中已正确注册对应Tab,且entityId与deeplink中的一致
内容的提问来源于stack exchange,提问作者Swerve
相关产品推荐
相关产品推荐

