如何在Teams应用中添加跳转至另一Teams应用的有效链接?
Teams旧应用跳转新应用深度链接问题排查与解决
我们计划给一款即将在数月内停用的Teams旧应用添加带深度链接的横幅,引导用户跳转至新Teams应用,最初使用的链接格式如下:
<a href="https://teams.microsoft.com/l/app/{app_id}"> <strong>check it out!</strong> </a>
但实际点击时出现两个不符合预期的行为:
- 直接点击链接会跳转到当前Teams应用的默认标签页,且页面无内容
- 右键选择「打开链接」会在浏览器中打开页面,并询问是否打开MS Teams应用
已确认链接中的{app_id}是新应用的ID,以下是问题根源与解决方案:
问题根源
原链接使用的https://teams.microsoft.com/l/app/{app_id}是Web端Teams的应用打开链接,在旧Teams应用内部点击时,Teams容器会优先在当前会话中解析该链接,导致无法正确唤起新应用;而通过浏览器打开时,会触发系统级的应用唤起询问,无法直接跳转至Teams客户端内的目标应用。
最终解决方案
借助Teams JavaScript SDK提供的executeDeepLink方法,配合msteams://协议的深度链接,可直接在Teams客户端内唤起新应用,具体实现代码如下:
function handleOpen(e) { e.preventDefault() microsoftTeams.executeDeepLink( "msteams://teams.microsoft.com/l/entity/xxx/xxx" ) }
这种方式绕过了Web链接的容器解析限制,直接通过客户端协议唤起目标应用实体,符合预期的跳转需求。
内容的提问来源于stack exchange,提问作者GLP
相关产品推荐
相关产品推荐

