Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Button 当我在Slack上单击HeroCard中的一个按钮时,两个按钮都会设置动画_Button_Botframework_Bots_Slack - Fatal编程技术网

Button 当我在Slack上单击HeroCard中的一个按钮时,两个按钮都会设置动画

Button 当我在Slack上单击HeroCard中的一个按钮时,两个按钮都会设置动画,button,botframework,bots,slack,Button,Botframework,Bots,Slack,我有一个基于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<CardActi

我有一个基于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);
var reply=sc.Context.Activity.CreateReply();
var卡=新卡
{
Text=“是否要继续”,
按钮=新列表
{
new CardAction(){Title=“Yes”,Type=ActionTypes.PostBack,Value=“Yes”},
new CardAction(){Title=“No”,Type=ActionTypes.PostBack,Value=“No”},
},
};
答复.附件=新列表{
卡片。ToAttachment()
};
var options=新的prompoptions()
{
提示=回复,
};
return wait sc.PromptAsync(dialogid.MyPrompt,选项);

我得到了正确的回答,但是,一个按钮应该会产生动画,这似乎是一个bug。以下解决方案将每个按钮指定为单个活动。然后使用
sendActivities()
方法发送活动。缺点是它将两个按钮垂直放置,而不是水平放置。方向似乎不可更改,因为
sendActivities()
方法不使用任何选项来定义显示类型(即
ListStyle.list
ListStyle.inline
等)

话虽如此,它确实有效

constreply1={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(
'是否要继续',
未定义,
[是的]
);
const card2=CardFactory.heroCard(
未定义,
未定义,
[noBtn]
);
答复1.附件=[card1];
答复2.附件=[card2];
等待stepContext.context.sendActivities([reply1,reply2])


希望有帮助

我想@StevenKanberg的把戏就行了。 但是,同样的解决方法不适用于自适应卡方案。
我发现自适应卡也存在同样的问题,因为它有多个操作按钮。

如果您认为我的回答足够,请“接受”它,这样我就可以从我的支持跟踪器中清除此票据。这样做也将有利于其他有类似问题的人。如果没有,让我知道我还能提供什么帮助!