MUI中实现im-chat聊天为自动发送和接收指定文字消息

mui的官方demo是点击进入聊天界面后,在对话框输入消息,系统接入图灵api每天返回有次数限制。

现在要做的功能是1、列表页面有几条数据,点击则跳转聊天界面,自动发送该条点击的数据,机器人自动回复设置好的消息。类似于以前QQ设置离线时,对方给你发送消息,自动提示您好不在线上。

效果图如下:

MUI中实现im-chat聊天为自动发送和接收指定文字消息_第1张图片MUI中实现im-chat聊天为自动发送和接收指定文字消息_第2张图片

2、直接点击聊天界面,发送任意消息,调用接口在数据库查询,有值就返回相应内容,否则提示您说的话听不懂。

MUI中实现im-chat聊天为自动发送和接收指定文字消息_第3张图片

MUI中实现im-chat聊天为自动发送和接收指定文字消息_第4张图片

参考文档:https://www.jianshu.com/p/3ef8ff92d3f8   每个方法作用讲解得比较详细

CSS大同小异,直接上JS部分吧。

先贴所有代码上来:

单个代码块详解:

1、列表页面有几条数据,点击则跳转聊天界面,自动发送该条点击的数据,机器人自动回复设置好的消息。

GetTitle()方法就是由外部数据点击进入聊天页面加载时调用的方法,调用后端方法获取到要显示的用户发送消息和机器人回复消息后,push进record中,这里重要的点在record.push方法上。

function GetTitle() {
						mui.Validation_Api("XXX/XXX/XXX", {   //调用后端方法
							"faqQuestion": decodeURI(mui.GetQueryString("_faqQuestion"))
						}, function(data) {
							if(data.respCode == "200") {
								if(data.data.rows != 0) {
									Question = data.data.rows[0].faqQuestion;
									Answer = data.data.rows[0].faqAnswer;
									record.push({
										sender: 'self',
										type: 'text',                         
										content: Question //设置用户主动发送的消息
									});

									record.push({
										sender: 'zs',
										type: 'text',
										//机器人返回的数据
										content: Answer
									});
									bindMsgList();//一定要记得绑定数据
								}

							} else {
								mui.toast("错误:" + data.message);
							}
						});
					}
					GetTitle();

2、直接点击聊天界面,发送任意消息,调用接口在数据库查询,有值就返回相应内容,否则提示您说的话听不懂。

		//发送对象声明
					var send = function(msg) {
						//将消息内容体push进record
						record.push(msg);
						//绑定消息节点
						bindMsgList();
						//输入框输入的消息
						toRobot(msg.content);
					};

					var toRobot = function(info) {
						mui.Validation_Api("XXX/XXX/XXX", { //把输入框的发送的消息传给后台接口
							"faqQuestion": info
						}, function(data) {
							if(data.respCode == "200") {
								if(data.data.rows.length == 0) { //如果后台返回的数据为0 表示未查询到数据  提示听不懂
									record.push({
										sender: 'zs',
										type: 'text',
										//机器人返回的数据
										content: "您说什么我听不懂!问福宝点别的东西吧 "

									});
									bindMsgList();
								} else if(data.data.rows.length == 1) { //如果后台返回的数据为1条说明只有单条信息 没有列表
									Answer = data.data.rows[0].faqAnswer;
									record.push({
										sender: 'zs',
										type: 'text',
										//机器人返回的数据
										content: Answer

									});
									bindMsgList();
								} else {   //返回多条信息  就加载猜您还想搜的列表
									var area_val = "";
									Answer = data.data.rows[0].faqAnswer;
									for(var i = 1; i < data.data.rows.length; i++) {
										area_val += "
" + data.data.rows[i].faqQuestion + "

" } record.push({ sender: 'zs', type: 'text', //机器人返回的数据 content: "
" + Answer + "
您可能想了解:
" + area_val }); bindMsgList(); } } else { mui.toast("错误:" + data.message); } }); }; //点击相应的猜您想搜列表 自动发送点击的消息和设置好的回答 mui('body').on('tap', '.listtext2', function() { record.push({ sender: 'self', type: 'text', content: this.innerHTML }); record.push({ sender: 'zs', type: 'text', //机器人返回的数据 content: this.getAttribute("attrtext") }); bindMsgList(); });

 

你可能感兴趣的:(前端)