0

我在 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());

机器人模拟器中测试时,它工作正常。看起来像这样

在此处输入图像描述

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

在此处输入图像描述

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

4

2 回答 2

1

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

GitHub 中的这个问题讨论了这一点。

于 2017-06-23T11:30:57.013 回答
1

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

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

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

于 2017-06-23T16:41:24.140 回答