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

我想将“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/ ”创建的自适应卡的布局。


犯罪嫌疑人X
浏览 108回答 1
1回答

守着星空守着你

您可以在架构中看到自适应卡 1.2 中引入了操作集:目前支持 Adaptive Cards 1.2 的唯一官方聊天客户端是 Web Chat,但 Web Chat 使用 Direct Line 通道,并且 Direct Line 会剔除它无法识别的元素:在该 GitHub 问题中,您将找到一种解决方法,可以使用自定义内容类型而不是application/vnd.microsoft.card.adaptive. application/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'));使用该问题中描述的解决方法,我能够成功呈现您的列集:
打开App,查看更多内容
随时随地看视频慕课网APP