监听对话事件

echatjs加载完成后可注册事件接收,实现自定义对话的部分高级效果
如:
1.在自定义图标上显示当前页面未读取的新消息数量
2.获取到新消息的内容,可自定义提示效果
3.获取到对话业务的相关数据提交到自己已有的数据分析 如:google analytics

注册监听事件必须在echat.js加载完成

示例:

<script type="text/javascript">
    var _echatServer = ['e.echatsoft.com'];
    window._echat=window._echat||function(){(_echat.q=_echat.q||[]).push(arguments)};_echat.l=+new Date;
    _echat('initParam', { companyId: 1});
    (function () {
        var echat = document.createElement('script');
        echat.type = 'text/javascript';
        echat.async = true;
        echat.id = 'echatmodulejs';
        echat.setAttribute('charset','UTF-8');
        echat.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'es.echatsoft.com/visitor/echat.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(echat, s);
    })();
    _echat('on',{
        ready: function () {
            //一洽配置加载完成
        },
        newMsg: function (num) {
            //一洽新消息数量
        },
        newEvent: function (data) {
            //一洽事件消息
        }
    });
</script>

13.1监听新消息数量

注册:newMsg:function(num){}
描述:num为当前页面在对话过程中客服或者是系统发送给访客的新消息数量,可在自定义图标位置显示角标

13.2监听一洽对话事件

注册:newEvent: function (event) {}
描述:如果使用页内窗口对话,可通过时间接收,接收到所有的对话事件。如果您是通过新窗口打开了对话那么对话事件中的新消息和评价事件则收不到。
参数描述:event为json对象 属性描述如下:

属性名 描述
eventCategory 事件分类 echat:对话相关事件
analytics:数据分析相关事件
eventAction 事件的类别明细
eventLabel 事件的详细信息

下面是每一类事件的详细介绍

eventCategory == 'echat' 分类的事件列表:

eventAction eventLabel
chatStatus 对话状态事件
waiting:等待接入对话
chatting:对话中
leaveDisabled:客服离线、留言禁用
leaveToService:客服离线进入留言
leaveToUrl:客服离线跳转至url
end-[0-8]-0/1:对话结束
0-8含义为结束原因:
0:对话结束原因未知
1:访客结束对话
2:客服结束对话
5:客服退出结束对话
6:系统关闭对话
8:访客长时间为响应结束对话
0/1含义为是否需要评价
0:不需要评价
1:需要评价
staffStatus 当前客服的在线状态 1:在线 2:离线
newMsg 访客收到的新消息text/[file]/[image]
text:收到的文本消息,消息中会有标签代表表情可直接拼接路径后获取表情图标地址如:表情的基础路径为http[s]://es.echatsoft.com
[file]:收到了新的文件
[image]:收到了新的图片
chatStaffInfo 对话的客服信息,json字符串 属性描述如下:
staffId:客服ID
staffNickName:客服的对外昵称
staffPhone:客服的对外电话
staffHead:客服的对外头像
staffInfo:客服的对外信息介绍
recordId:当前对话的ID 例如:1_12312
queuePostion 客服的排队位置,排队位置变化后会收到此事件
visitorEvaluate 客服的评价结果 0/1-1/2
0/1含义为是否提交了评价
0:访客取消评价
1:访客提交了评价
1/2含义为提交评价时的对话状态
1:访客对话中
2:对话已结束
visitorHide 访客隐藏了对话窗口,eventLabel为空
echatPageStatus 当前页面打开的内页对话窗口的状态。(打开-最小化)。页面状态json字段解释。
platformNewMsg 平台客户新消息,eventLabel为新消息的json字符串,此事件只有在平台版本的平台账号下有新的未读消息时才会触发。详见下方平台客户新消息json描述。

平台客户新消息json字段解释:
示例

{
    "chatUrl":"https://ps.echatsoft.com/visitor/mobile/chat.html?companyId=500029&platformSign=3rfef3ffsfsdwerwjljl",
    "companyId":"500029",
    "companyLogo":"http://pffile.echatsoft.com/group1/M00/00/00/wKgcPFzae_uAA112AAAZUUyrnC0829.png",
    "companyName":"Nike旗舰店",
    "msgContent":"[图片]",
    "msgId":"123321",
    "unreadMsgCount":5
}
字段 类型 说明
companyId string 新消息所属账号ID
companyName string 新消息所属账号名称
companyLogo string 新消息所属账号的logo
msgContent string 新消息内容(可能为空,如果为空,说明只通知了未读消息数量)
msgId string 消息ID 唯一值
chatUrl string 对话窗口地址,打开即可进入当前未读消息的对话页面
unreadMsgCount int 当前消息盒子的未读消息数量(次访客在平台以及平台所有商户的未读消息数量和)

eventCategory == 'analytics' 分类的事件列表:
此部分事件推送为了方便用户将对话的数据提交给google analytics,如果您也需要将对话的时间提交给google analtyics的话那么请将 https://es.echatsoft.com/visitor/echatDataPlugin.js 通echat.js一同加入到您的网站上,一洽会自动识别ga账号并向ga提交对话相关的数据。注:此部分只有在您使用内页对话窗口是才会统计到可靠的数据。
一洽向google提交的eventCategory为:Echat LiveChat

eventAction eventLabel
Button Clicked 访客点击事件,label为空
Served by Agent 对话接入事件,eventLabel为客服昵称
ChatEvaluate${val} val为1-5代表评价等级 评价事件,eventLabel为chating/end 代表提交评价时对话的状态
Chat_Evaluate_Cancel 取消评价 eventLabel为chating/end 代表取消评价时对话的状态
Chat_Comment_submit 访客提交了评价信息 eventLabel为chating/end 代表提交评价信息时对话的状态