【问题标题】:Both buttons animate when i click one button in the HeroCard on Slack当我在 Slack 上单击 HeroCard 中的一个按钮时,两个按钮都会动画
【发布时间】:2019-11-07 14:35:48
【问题描述】:

我有一个基于 Bot builder SDK v4.0 的 Slack 机器人。 当我用两个按钮添加 HeroCard 时,slack 会正确渲染卡片,当我单击一个按钮时,两个按钮都会动画,但它会返回正确的按钮单击。

var reply = sc.Context.Activity.CreateReply();
var card = new HeroCard
{
    Text = "Do you want to continue",
    Buttons = new List<CardAction>
    {
        new CardAction() { Title = "Yes", Type = ActionTypes.PostBack, Value = "Yes"},
        new CardAction() { Title = "No", Type = ActionTypes.PostBack, Value = "No"},
    },
};
reply.Attachments = new List<Microsoft.Bot.Schema.Attachment> { 
    card.ToAttachment() 
};
var options = new PromptOptions()
{
    Prompt = reply,
};
return await sc.PromptAsync(DialogIds.MyPrompt, options);

我得到了正确的答复,但是,一个按钮应该有动画效果

【问题讨论】:

  • 如果您觉得我的回答足够,请“接受”它,以便我可以从我的支持跟踪器中清除这张票。这样做也将使其他有类似问题的人受益。如果没有,请告诉我我还能提供哪些帮助!

标签: button botframework bots slack


【解决方案1】:

这似乎是一个错误。以下解决方案通过将每个按钮分配为单独的活动来工作。然后使用sendActivities() 方法发送活动。缺点是它垂直而不是水平放置两个按钮。方向似乎不可更改,因为sendActivities() 方法不采用任何选项来定义显示类型(即ListStyle.listListStyle.inline 等)。

话虽如此,它确实有效。

const reply1 = { type: ActivityTypes.Message };
const reply2 = { type: ActivityTypes.Message };

const yesBtn = { type: ActionTypes.PostBack, title: 'Yes', value: 'Yes' };
const noBtn = { type: ActionTypes.PostBack, title: 'No', value: 'No' };

const card1 = CardFactory.heroCard(
  'Do you want to continue',
  undefined,
  [yesBtn]
);
const card2 = CardFactory.heroCard(
  undefined,
  undefined,
  [noBtn]
);

reply1.attachments = [card1];
reply2.attachments = [card2];

await stepContext.context.sendActivities([reply1, reply2])

希望有帮助!

【讨论】:

    【解决方案2】:

    我认为@StevenKanberg 把戏可以。 但是,相同的解决方法不适用于自适应卡方案。 我发现自适应卡片存在同样的问题,它有多个操作按钮。

    【讨论】:

      猜你喜欢
      • 2022-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      相关资源
      最近更新 更多