我在C#中使用Microsoft Bot Framework编写了一个机器人,并在其中包含了以下html
await context.PostAsync($"How would you like to connect, {username} ?");
StringBuilder sb = new StringBuilder();
sb.Append("<html><head>");
sb.Append("<style>");
sb.Append(".button{"); sb.Append("padding:10px25px;background-color:white;text-align:center;cursor:pointer;outline:none;color:#66b3ff;background-color:white;border-width:1px;border-color:#a6a6a6;border-radius:0px;}");
sb.Append(".button:hover{"); sb.Append("border-color:#66b3ff;color:#66b3ff;background-color:white;}");
sb.Append(".button:active{"); sb.Append("color:white;background-color:#66b3ff;border-color:#66b3ff;}");
sb.Append("</style>");
sb.Append("</head><body>");
sb.Append("<a href=\"mailto:abc@abc.com?Subject=Place%20Subject%20here");
sb.Append("\" target=\"_top\"><button class=\"button\">");
sb.Append("Connect with Mail"); sb.Append("</button></a>");
sb.Append("<a href=\"tel:+1111111111\"><button class=\"button\">");
sb.Append("Connect with Call"); sb.Append("</button></a>");
sb.Append("</body></html>");
await context.PostAsync(sb.ToString());
在 bot模拟器中测试时,它可以正常工作。看起来像这样
但后来我使用直接通道api进行了部署。它直接显示html代码而不是上面给出的按钮。在网页上运行时会显示
对不起一张糟糕的照片我很抱歉。有没有办法使用直线api在机器人中显示html?
答案 0 :(得分:1)
我不认为这是可能的。 WebChat不会让任何其他聊天客户端(例如Facebook Messenger,Skype,Slack)通过原始HTML。
GitHub中的这个issue讨论了这一点。
答案 1 :(得分:1)
Bot Framework不支持HTML格式的消息。对于复杂的消息,包括对按钮操作,表单输入和回发的支持,请使用Adaptive Cards规范。
查看此博客文章,其中介绍了.NET中的自适应卡设计和使用:
有关自适应卡的更多信息,请参阅: