我想在僵尸框架下禁用网络聊天中的卡片按钮。例如,在一张卡片中,我有多个按钮,我想根据某些数据值禁用某些按钮。我怎样才能做到这一点?botFramework:在僵尸框架下禁用网络聊天中的卡片按钮
-2
A
回答
5
未来我会建议缩小您的请求的范围,减少涉及您想要实现的内容的细节。尽管如此,我填补了一些空白,并且做了一些我希望会有所帮助的事情。 :)
我有一个working example bot,做以下操作:
- 显示英雄卡,每个响应
- 如果用户说“嗨”或“你好”,两个按钮将显示卡上
- 如果用户不喜欢机器人,只会显示一个按钮。
- 告诉用户他们是否迎接机器人(SendGreeting,真或假)
我保存在的UserData,SendGreeting布尔,通知机器人是否要显示第二个按钮。在控制器中,我有以下代码:
- 实例化的UserData,
- 确定SentGreeting是否应当是真或假
然后保存该布尔到UserData.SentGreeting。
// create connector service ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); // get state client object StateClient stateClient = activity.GetStateClient(); // retrieve user data BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id); bool SentGreeting; if (activity.Text == "hello" || activity.Text == "hi") { SentGreeting = true; } else { SentGreeting = false; } userData.SetProperty<bool>("SentGreeting", SentGreeting); // save state await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData); // initiate CardDialog await Conversation.SendAsync(activity,() => new CardDialog());
在对话框中,有下列代码的作用:
- 从的UserData检索SentGreeting
- 创建英雄卡
创建秘密按钮并将其添加到仅当SentGreeting为真时按钮列表
// create sentGreeting bool sentGreeting; // assign value from UserData.SentGreeting context.UserData.TryGetValue<bool>("SentGreeting", out sentGreeting); // create standard button list (for those who do not greet the bot) var GenericButtonList = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Bot Framework", value: "https://docs.botframework.com/en-us/"), }; // create the hero card var Card = new HeroCard() { Title = "Select an Action", Subtitle = "Choose from available actions", Text = "If you were polite and said \'hi\' or \'hello\' to this bot, you will see two buttons below.", Images = new List<CardImage> { new CardImage("https://cloud.githubusercontent.com/assets/14900841/23733811/c618e402-042f-11e7-9b8e-6262d9f2d898.JPG") }, Buttons = GenericButtonList }; // create secret button that only users who said hi can see CardAction secretButton = new CardAction(); secretButton.Title = "Very Polite"; secretButton.Type = "openUrl"; secretButton.Value = "https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/demo-ContosoFlowers/ContosoFlowers.Services"; if (sentGreeting) { Card.Buttons.Add(secretButton); }
链接到GitHub repo这个机器人
+0
我不想根据数据输入切换按钮(显示/隐藏)的可见性。我想根据输入数据启用/禁用按钮。该按钮应始终存在,应根据数据值启用或禁用该按钮。 –
1
不能启用/禁用使用外的现成的网上聊天。尽管如此,您也许可以构建自定义WebChat并添加该功能。
所有的魔法都发生在Attachment.tsx文件中。有一个buttons函数,例如,在呈现HeroCard时会调用该函数。该函数创建一个按钮并应用CSS类。你可以根据你的按钮的某个值动态地改变这个类。
顺便说一句,如果你设法做到这一点,国际海事组织,它可能是WebChat组件的良好贡献。
相关问题
- 1. Botframework自定义网络聊天控件
- 2. 在僵尸程序框架中持久存在bot聊天数据至Form Flow
- 3. 与Arduino聊天僵尸工具
- 4. 微博僵尸框架,如何验证用户登录网络应用程序
- 5. 编程病毒僵尸网络杀手
- 6. 在Xcode中使用僵尸
- 7. C#实体框架 - 社交网络 - 友谊,聊天实体
- 8. 的Node.js - 卡在制作简单的网络聊天
- 9. 功能性网络聊天
- 10. 从网络开始环聊聊天
- 11. 如何在网络聊天中通过富媒体卡中的点击按钮文字回复
- 12. 僵尸框架对话框错误处理
- 13. Java中的简单网络聊天
- 14. 僵尸进程
- 15. Oracle - 僵尸表
- 16. 用RSS微软机器人框架僵尸喂
- 17. 试图推动使用僵尸程序框架
- 18. 他们为什么不能说出僵尸网络的起源?
- 19. 聊天插件或框架
- 20. Firebase - 网络聊天应用程序登录按钮不起作用
- 21. Windows网络聊天应用程序
- 22. 使用PHP创建Firebase网络聊天
- 23. 失败的方法来摆脱僵尸的僵尸视图
- 24. 在Xamarin Studio中启用僵尸对象
- 25. 动态链接僵尸框架中的一个或多个对话框
- 26. 帐户链接微软僵尸框架Facebook教程
- 27. ios僵尸检测
- 28. 僵尸消息在循环
- 29. 与扭曲的网络聊天
- 30. Nativescript有哪些IRC /网络聊天/ Slack聊天频道?
你想提示什么数据?你试过什么了?你能展示一些示例代码吗? – Necoras