如何在Teams Webhook的OpenUri中实现window.open弹窗功能?
解决Teams Webhook中OpenUri无法实现弹窗的问题
问题根源:Teams的MessageCard
OpenUri动作仅支持直接跳转HTTP/HTTPS链接或Teams深度链接,不允许执行JavaScript代码(包括window.open),你当前的写法会被Teams识别为无效URL,自然无法触发弹窗效果。正确实现方案:使用Teams原生支持的Task Module(适配Adaptive Card格式,MessageCard已逐步被Adaptive Card替代)来实现自定义大小的弹窗。示例代码如下:
{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4", "body": [ { "type": "TextBlock", "text": "test" } ], "actions": [ { "type": "Action.Submit", "title": "Add comment", "data": { "msteams": { "type": "task/fetch", "value": { "width": 600, "height": 600, "url": "http://test.com" } } } } ] }
- 补充说明:
- 选择Adaptive Card是因为它对Task Module的支持更完善,也是Teams官方推荐的卡片格式。
- 通过
Action.Submit结合task/fetch类型触发Task Module,可直接指定弹窗的宽高和目标页面地址,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Praveen V
相关产品推荐
相关产品推荐

