如何获取ChatBot中AdaptiveCard控件更改的值?

时间:2019-04-09 13:21:54

标签: c# botframework textinput adaptive-cards web-chat

我在Microsoft ChatBot中使用AdaptiveCard输入控件。谁能给我提示如何获取Adaptive Control的TextInput或ChoiceSet的change属性或事件。例如,在选择ChoiceSet上,我想在TextInput控件中填充一些值吗?

               //new TextBlock() { Text = "Country" },
               new ChoiceSet()
               {
                   Id = "Country",
                   Speak = "<s>Please enter your country.</s>",
                   IsMultiSelect = false,
                   Style = ChoiceInputStyle.Compact,
                   Separation= SeparationStyle.Default,
                   Choices = choices,
                   Value = "country"
                 },
               new TextInput()
               {
                   Id = "Mobile",
                   Speak = "<s>Please enter your mobile with country code.</s>",
                   Placeholder = "+(country code)(Your Phone Number)",
                   Style = TextInputStyle.Tel,
                   IsRequired = true
               },

1 个答案:

答案 0 :(得分:0)

网络聊天不提供这种功能。我可以想到一些解决方法。

选项1:使用多张卡

您可以发送一张卡片,让用户选择一个国家,然后将该选择发送给漫游器,在下一个回合中,漫游器可以发送另一张带有文本输入并填写了国家/地区代码的卡片。

选项2:在选项集中指定国家/地区代码

您可以让用户手动输入国家/地区代码。您只需要确保您的漫游器告诉他们他们需要这样做,就可以指示与每个选择相关的国家/地区代码,可能是在选择集中。

选项3:自动在漫游器端添加国家/地区代码

尽管Web Chat v4可以高度自定义,但是您的bot更具可自定义性,因为您可以编写所需的任何代码。像这样的特殊功能最好由机器人本身来处理,因为您只能对客户端应用程序进行太多控制。如果您明确表示用户不需要输入国家/地区代码,则您的漫游器可以根据所选国家/地区将国家/地区代码添加到电话号码中。您甚至可以使该机器人足够聪明,以在添加国家/地区代码之前检测该国家/地区代码是否已经存在。