在Bot框架中,建议操作(Suggested Actions)是一种用户界面元素,用于向用户展示一组可选择的操作。这些操作可以是按钮或菜单项,用户可以通过点击这些操作来与Bot进行交互。建议操作可以在对话框(Dialogs)和表单流(Form Flows)中使用,以提高用户体验和交互效率。
建议操作:一组预定义的操作选项,用户可以直接选择,而无需手动输入。
对话框:Bot框架中用于管理复杂对话流程的结构化组件。
表单流:一种特殊的对话框,用于收集用户输入的一系列信息,通常用于数据录入场景。
在对话框中使用建议操作可以帮助用户快速做出选择,尤其是在需要用户从多个选项中选择一个时。
public class MyDialog : ComponentDialog
{
public MyDialog() : base(nameof(MyDialog))
{
AddDialog(new WaterfallDialog(nameof(WaterfallDialog), new WaterfallStep[]
{
async (stepContext, cancellationToken) =>
{
var reply = stepContext.Context.Activity.CreateReply();
reply.SuggestedActions = new SuggestedActions()
{
Actions = new List<CardAction>()
{
new CardAction() { Title = "Option 1", Type = ActionTypes.ImBack, Value = "Option 1" },
new CardAction() { Title = "Option 2", Type = ActionTypes.ImBack, Value = "Option 2" },
new CardAction() { Title = "Option 3", Type = ActionTypes.ImBack, Value = "Option 3" }
}
};
await stepContext.Context.SendActivityAsync(reply, cancellationToken);
return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
}
}));
}
}
在表单流中,建议操作可以用于引导用户完成特定的字段填写,或者在用户不确定如何填写某个字段时提供帮助。
public class MyFormDialog : FormDialog<MyFormData>
{
public MyFormDialog() : base(nameof(MyFormDialog))
{
InitializeForm();
}
private void InitializeForm()
{
var form = new FormBuilder<MyFormData>()
.Field(nameof(MyFormData.Field1))
.AddRemainingFields()
.OnField(nameof(MyFormData.Field2), (formContext, field) =>
{
field.SuggestedActions = new SuggestedActions()
{
Actions = new List<CardAction>()
{
new CardAction() { Title = "Suggestion 1", Type = ActionTypes.ImBack, Value = "Suggestion 1" },
new CardAction() { Title = "Suggestion 2", Type = ActionTypes.ImBack, Value = "Suggestion 2" }
}
};
return Task.CompletedTask;
});
Form = form.Build();
}
}
问题:建议操作不显示或显示不正确。 原因:可能是由于Bot框架版本不兼容、代码逻辑错误或配置问题。 解决方法:
SuggestedActions
属性。通过以上方法,可以在Bot框架中有效地利用建议操作来提升用户体验和交互效率。
领取专属 10元无门槛券
手把手带您无忧上云