Обе кнопки анимируются, когда я нажимаю одну кнопку в HeroCard на Slack - PullRequest
0 голосов
/ 25 июня 2019

У меня слабый бот на основе Bot Builder SDK v4.0. Когда я добавляю 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);

Я получаю правильный ответ, однако одна кнопка должна оживить

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Это похоже на ошибку.Следующее решение работает, назначая каждую кнопку как отдельное действие.Затем действия отправляются с использованием метода sendActivities().Недостатком является то, что обе кнопки расположены вертикально, а не горизонтально.Ориентация не представляется изменяемой, так как метод sendActivities() не принимает никаких опций для определения типа отображения (например, ListStyle.list, ListStyle.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])

enter image description here

Надежда на помощь!

0 голосов
/ 28 июня 2019

Я думаю, что трюк @StevenKanberg подойдет.Однако тот же обходной путь не может применяться к сценарию Adaptive Card.Я вижу ту же проблему с адаптивной картой, где она имеет более одной кнопки действий.

...