【发布时间】:2021-08-18 12:56:53
【问题描述】:
我有一个瀑布对话框,它使用选项提示向用户询问一些问题,我将这些选项包装成英雄卡,如下所示:
private async Task<DialogTurnResult> ChoiceStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
await stepContext.Context.SendActivityAsync(new Activity { Type = ActivityTypes.Typing }, cancellationToken);
return await stepContext.PromptAsync(p1, new PromptOptions
{
Choices = new List<Choice>(){new Choice {Value = "650"},new Choice {Value = "600"},new Choice {Value = "Cancel"},},
Prompt = ChoiceToCard(),
Style = ListStyle.None,
});
}
private Activity ChoiceToCard()
{
HeroCard card = new HeroCard
{
Text = "Please choose an option.",
Buttons = new List<CardAction>()
};
card.Buttons.Add(new CardAction()
{
Type = ActionTypes.MessageBack,
Title = "Option 1",
Text = "650",
DisplayText = "Option 1",
Value = "650"
});
card.Buttons.Add(new CardAction()
{
Type = ActionTypes.MessageBack,
Title = "Option 2",
Text = "600",
DisplayText = "Option 2",
Value = "600"
});
card.Buttons.Add(new CardAction()
{
Type = ActionTypes.MessageBack,
Title = "Cancel",
Text = "Cancel",
DisplayText = "Cancel",
Value = "Cancel"
});
return MessageFactory.Attachment(card.ToAttachment()) as Activity;
}
当它在团队的桌面客户端上运行时效果很好,但是当我单击移动客户端上的按钮时没有任何反应,我在日志中看不到任何错误,并且只要我单击桌面上的按钮客户端然后我收到响应。
这样做的原因是因为我有一些 id's/hidden 值应用于卡片按钮值,以不将其暴露给客户端视图。
更新
一些人提出了类似的问题,但这是我们需要了解的情况是不同的,因为我给出的上下文与建议不同。
这发生在瀑布对话框中,它使用选择提示向用户显示英雄卡,这样做的原因不仅仅是使用选择提示样式,因为我为操作值分配了一个 ID,它应该被传回我的服务器而不是用户友好的文本。
【问题讨论】:
-
您可以在 MS Team 中使用自适应卡片代替英雄卡片,我认为 MS Teams 不支持 MessageBack
-
@RajeeshMenoth 不,该链接不能解决我的问题,并且根据文档支持 messageBack:docs.microsoft.com/en-us/microsoftteams/platform/…
-
好像是个bug,请问你是在哪个平台上,iOS还是Android?
-
@HunaidHanfee-MSFT Android
标签: c# .net-core botframework microsoft-teams