我想使用Bot Builder SDK for .NET清除以前的聊天消息。是否可以清除Bot Dialogue的消息C#代码。
通过按一些“清除”按钮寻找一些选项来清除屏幕快照中的所有消息
答案 0 :(得分:2)
我想使用Bot Builder SDK for .NET清除以前的聊天消息。是否可以清除Bot Dialogue的消息C#代码。
您已将漫游器配置为连接到网络聊天频道,该消息可能会从漫游器发送到嵌入式Web聊天控件的网站应用。正如我和@MarkB在评论中提到的,要清除在网站内的Webchat窗口中呈现的消息,您可以build and use your customized Web Chat control。我建立了自定义的Web聊天并实现了清除消息功能,您可以参考它。
1)添加清除按钮并为Chat.tsx
中的按钮单击事件实现清除消息功能
{
!!state.format.chatTitle &&
<div className="wc-header">
<span>{ typeof state.format.chatTitle === 'string' ? state.format.chatTitle : state.format.strings.title }</span>
</div>
}
{
<button className="wc-clear" onClick={ () => this.onClickClear() }>
<span>Clear Messages</span>
</button>
}
onClickClear
的实现:
/*remove messages*/
private onClickClear() {
/*alert("111");*/
Array.from(document.getElementsByClassName("wc-message-wrapper"))
.forEach(element => element.remove());
}
2)为botchat.scss
.wc-clear{
background-color:#0078d7;
box-shadow: 0 1px $c_shadow;
box-sizing: content-box;
color: $c01;
font-weight: 500;
height: $headerTotalHeight - $headerPaddingTop - $headerPaddingBottom;
/*left: 0;*/
letter-spacing: 0.5px;
padding: $headerPaddingTop $headerPaddingRight $headerPaddingBottom $headerPaddingLeft;
position: relative;
/*right: 0;
top: 0;*/
display: block;
float: right;
z-index: 1;
border: 0 !important;
}
3)构建到我们自己的版本Web Chat并在网站中使用
测试结果:
或者您可以使用the Backchannel mechanism向网络聊天客户端发送特定的事件活动,然后网络聊天客户端侦听该特定事件并通过使用{{ 1}}类通过JavaScript。
我们正在通过ChatBot提供一些SQL报告
如果您想在漫游器应用程序'wc-message-wrapper'
或MessagesController
中访问SQL数据库,则可以使用和利用熟悉的ORM框架。此外,如果您想从托管在Azure上的漫游器应用程序连接到本地数据库,则可以参考this article。
答案 1 :(得分:0)
如果您使用的是用c#构建的Bot,并使用Direcline机器人频道将其嵌入HTML页面中。然后,以下代码将帮助您清除聊天消息。
在聊天头上添加重新启动/清除聊天按钮
<i id="restart" class="fa fa-retweet headicons" aria-hidden="true" style="float: left;" title="Restart Chat"></i>
为此,请使用以下onclick事件
$("#restart").click(function(){
Array.from(document.getElementsByClassName("webchat__stacked_indented_content"))
.forEach(element => element.remove());
});
此方法的一个缺点是,如果在客户端站点中使用此方法,我们将无法再次收到欢迎消息。要在聊天窗口中再次获得欢迎消息,请使用该机器人的C#编码中的类似方法,并再次调用onmemberadd事件以触发欢迎消息。