HTML未在直线网站

时间:2017-06-23 08:43:28

标签: c# html botframework direct-line-botframework

我在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模拟器中测试时,它可以正常工作。看起来像这样

enter image description here

但后来我使用直接通道api进行了部署。它直接显示html代码而不是上面给出的按钮。在网页上运行时会显示

enter image description here

对不起一张糟糕的照片我很抱歉。有没有办法使用直线api在机器人中显示html?

2 个答案:

答案 0 :(得分:1)

我不认为这是可能的。 WebChat不会让任何其他聊天客户端(例如Facebook Messenger,Skype,Slack)通过原始HTML。

GitHub中的这个issue讨论了这一点。

答案 1 :(得分:1)

Bot Framework不支持HTML格式的消息。对于复杂的消息,包括对按钮操作,表单输入和回发的支持,请使用Adaptive Cards规范。

查看此博客文章,其中介绍了.NET中的自适应卡设计和使用:

有关自适应卡的更多信息,请参阅: