我已经使用Microsoft bot框架创建了一个聊天机器人,并将其部署在Azure上,并将其链接到我的Facebook页面。一切正常,但有一个小问题,那就是,机器人发送的一条消息有2-3个不同行的组合,我想显示由空行分隔的3行,所以我在行之间添加了转义序列"\n\n“。
"Line1\n\nLine2\n\nLine3"当我在Azure网络聊天中测试它时,它工作得很好,但是Facebook聊天窗口不显示空行,有人能帮我吗?提前谢谢。
当前人脸显示消息如下
Line1
Line2
Line3我想把它显示为
Line 1
Line 2
Line 3 发布于 2019-05-30 04:04:50
您的消息文本正在通过一个相当激进的Markdown解析器运行,该解析器会去掉多余的换行符。对于如何处理这个问题,您有几个选择。
选项1
如果您将文本设置为频道数据而不是实际的活动文本,它将不会通过Markdown解析器运行:
var text = "Line1\n\nLine2\n\nLine3";
var activity = turnContext.Activity.CreateReply();
activity.ChannelData = new { text };
await turnContext.SendActivityAsync(activity);选项2
如果将文本格式设置为纯文本,文本将不会通过Markdown解析器运行:
var text = "Line1\n\nLine2\n\nLine3";
var activity = turnContext.Activity.CreateReply(text);
activity.TextFormat = TextFormatTypes.Plain;
await turnContext.SendActivityAsync(activity);选项3
如果要将通道数据用于其他用途,并且不想将文本格式设置为纯文本,则可以始终使用<br/>而不是\n
var text = "Line1<br/><br/>Line2<br/><br/>Line3";https://stackoverflow.com/questions/56340935
复制相似问题