为了账号安全,请及时绑定邮箱和手机立即绑定

如何将“AdaptiveActionSet”放入“AdaptiveColumn”中?

如何将“AdaptiveActionSet”放入“AdaptiveColumn”中?

C#
犯罪嫌疑人X 2023-07-09 17:39:27
我想将“AdaptiveOpenUrlAction”放入“AdaptiveColumnSet”中,以获得更好的自适应卡布局。但是,我的机器人模拟器不显示 OpenUrl 按钮。如何添加操作按钮?也许这是adaptivecards版本的问题?我的adaptivecards的版本是1.1(1.0也可用)。我想请教解决办法。下面是我编写的代码和我在模拟器中创建的 json 日志。ActionSet中的Json Log写入到模拟器中,但是ActionSet中的按钮并没有显示在卡片上。C# 代码new AdaptiveColumn(){    Items =    {        new AdaptiveActionSet()        {            Actions =            {                new AdaptiveOpenUrlAction()                {                    Url = new Uri("https://www.someurl.com"),                    Title = "Reserve",                    Style = "positive",                }            }        }    },    Width = "auto",}日志记录"items": [  {    "actions": [      {        "style": "positive",        "title": "Reserve",        "type": "Action.OpenUrl",        "url": "https://www.someurl.com"      }    ],    "type": "ActionSet"  }],"type": "Column","width": "auto"下面是我从“ https://adaptivecards.io/designer/ ”创建的自适应卡的布局。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以在架构中看到自适应卡 1.2 中引入了操作集:

//img2.sycdn.imooc.com/64aa80870001b85402690162.jpg

目前支持 Adaptive Cards 1.2 的唯一官方聊天客户端是 Web Chat,但 Web Chat 使用 Direct Line 通道,并且 Direct Line 会剔除它无法识别的元素:

在该 GitHub 问题中,您将找到一种解决方法,可以使用自定义内容类型而不是application/vnd.microsoft.card.adaptiveapplication/vnd.microsoft.card.custom例如,如果您将内容类型设置为,则可以在网络聊天的附件中间件中将附件转换回自适应卡:

const attachmentMiddleware = () => next => card => {

  if (card.attachment.contentType === 'application/vnd.microsoft.card.custom'){

    card.attachment.contentType = 'application/vnd.microsoft.card.adaptive'

  }

  return next(card)

};


window.WebChat.renderWebChat({

  directLine,

  attachmentMiddleware

}, document.getElementById('webchat'));

使用该问题中描述的解决方法,我能够成功呈现您的列集:

//img2.sycdn.imooc.com/64aa809a0001435306480183.jpg

查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信