HTML 未显示在直线网站中

HTML not showing in directline website

我在 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?

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

GitHub 中的 issue 对此进行了讨论。

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

查看这篇博客文章,其中提供了 .NET 中自适应卡片设计和使用的演练:

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