检测Bot框架中的主题设置,即暗,高对比度,默认



在使用microsoft Bot Framework SDK构建Teams扩展时,是否有人知道如何检测用户的主题设置生成视觉上吸引人的自适应卡片布局?

我发现有些图像在浅色模式/默认情况下看起来很好,但在黑暗模式下看起来很糟糕。

为了解决这个问题,我想在自适应卡中有条件地设置图像。然而,要做到这一点,我需要当前的主题信息。

我已经搜索了上下文活动,但找不到方法。

我希望在自适应卡中做这样的事情(注意if语句)


{
"items": [
{
"type": "Image",
"url": "${if(theme == 'dark', images.whiteCat, images.blackCat)}",
"size": "Small"
}
]
}

使用teams-js api,我确实看到可以从上下文对象中获得当前主题,但我无法在botbuilder-js库(在服务器上)中找到这样做的方法。这似乎很奇怪,因为botbuilder在TeamsActivityHandler中发出有关设备和语言的信息,但我找不到关于主题的任何信息。

是否可以检测使用botbuilder的团队主题(在最新版本)?

如果有人能提供在自适应卡中放置图像的提示或建议,我将非常感激,因为Teams提供了三种不同的主题设置(默认,暗和高对比度)。

我认为负载中没有任何内容显示主题,但实际上我建议-反对-无论如何都要这样做。在选项卡中,这是可行的,因为您可以获得初始主题(在上下文对象上)以及订阅主题更改事件的能力。这意味着你总是能够对当前的相关主题做出回应。对于机器人来说,这是不同的,因为一旦你发送了一条消息,它基本上就会永久地留在聊天记录中。如果用户稍后更改了主题,同样的信息将会出现,并且可能不再适合该主题。(从技术上讲,更新或删除以前的消息是可能的,但这并不适用于所有发送过的消息,如果主题改变了,你也不会不这样做,因为没有事件发送给bot)。因此,您需要发送在两个主题中都有效的消息。

也许使用光透明可以工作,取决于图像。

目前AC不支持,但已确定参见:主题栏图标/字形

相关内容

最新更新