You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端Microsoft Teams Bot的AdaptiveTextBlock文本渲染异常咨询

Teams iOS端Adaptive Card渲染异常问题排查

问题描述

我在Microsoft Teams Bot中发送带按钮的消息,使用了Adaptive Card及自适应控件,这些消息在Windows桌面端和Android版Teams中显示正常,但iOS设备(含iPad)上出现渲染异常:

具体问题

  • AdaptiveTextBlock中用**包裹的高亮文本,iOS端会导致整句变粗,且高亮单词比其他文本更粗
  • 文本包含@提及用户名时,高亮完全失效,偶尔整条消息会消失

代码示例

var entList = new List<Mention>() {
    new Mention()
    {
        Mentioned = new ChannelAccount(id: turnContext.Activity.From.Id, name: turnContext.Activity.From.Name),
        Text = $"{turnContext.Activity.From.Name}",
    }
};

var card = new AdaptiveCard("1.5");
var tblock = new AdaptiveTextBlock();
tblock.Text = "<at>"+ turnContext.Activity.From.Name + "</at> Hi! this is **bold text**";
tblock.Wrap = true;
card.Body.Add(tblock);

var act = MessageFactory.Text("");
act.Attachments.Add(new Attachment()
{
    Content = card,
    ContentType = AdaptiveCard.ContentType
});

var entities = new { entities = entList };
card.AdditionalProperties.Add("msteams", entities);

await turnContext.SendActivityAsync(act);

问题分析与解决建议

1. Markdown加粗渲染异常处理

Adaptive Card的Markdown渲染在不同平台存在兼容性差异,iOS版Teams对**的解析逻辑和桌面/Android端不一致。建议改用原生Adaptive Card控件实现局部加粗,避免依赖Markdown:

var tblock = new AdaptiveTextBlock();
tblock.Inlines = new List<AdaptiveInline>()
{
    new AdaptiveMentionInline() { Mention = entList[0] },
    new AdaptiveTextRun() { Text = " Hi! this is " },
    new AdaptiveTextRun() { Text = "bold text", Weight = AdaptiveTextWeight.Bolder }
};
tblock.Wrap = true;

通过AdaptiveTextRun的Weight属性控制局部文本粗细,能规避跨平台解析差异。

2. @提及导致的异常处理

当前代码同时使用<at>标签和Mention实体,这种混合方式易在iOS端触发兼容性问题。建议统一使用AdaptiveMentionInline控件处理@提及,而非直接在文本中插入<at>标签,确保各平台正确解析提及内容,避免冲突导致的渲染异常。

3. 平台bug确认

若上述优化后问题仍存在,大概率是iOS版Teams的Adaptive Card渲染bug:

  • 先将Teams iOS端升级到最新版本测试
  • 可在微软开发者社区提交反馈,提供卡片代码和设备信息,确认是否为已知问题

内容的提问来源于stack exchange,提问作者Swapnil Chowkekar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:16:12