版本-v1128
发版申明:api更新时,在这个文档末端加上release
版本-v1204
发版申明:
1、烧毁client.initInnerCallBack中的videoCloseCB回调,将其准确关照到对应的回调事宜中(增添closeVideoSuccess回调事宜),涉及到的变动以下,示例代码已增加
- client.videoPickUp
- client.videoInviteAgent
- client.callbackToVisitor
- client.videoInviteCurrentVisitor
- client.videoInviteVisitor
2、一致SDK报错的提醒花样,从返回的数据的error.msg拿毛病提醒信息
error: function(data) {
if(data.error) {
var msg = data.error.msg || ''
}
console.log(msg, '毛病信息')
}
版本-v1211
发版申明:
1、增添是不是在屏幕同享的API – isShareState
2、增添是不是在三方视频中的API – isMultipleVideo
版本-v1216
发版申明:
1、client.initInnerCallBack 中增加了 visitorStreamOffline 事宜,当集会中有成员视频流住手凌驾3s 则推送此事宜
版本-v1220
发版申明:
1、增添client.videoPickUp中的visitorDisconnect回调,提醒音视频接通后访客端引发的挂断,详见示例代码
2、增添client.multipleVideoPickUp中的kefuCloseVideoSuccess回调,提醒音视频接通后坐席或访客端挂断致使的集会完毕(非被约请的三方坐席)
1、初始化举例、参数及挂载回调申明
1.1、new IMClient 初始化申明
- baseWsUrl 必填 基本衔接的ws,wss://lccp-ex.easemob.com:1040为wss衔接,ws://127.0.0.1:1040为ws衔接
- ssoTo 必填 客服的主地点
- videoBarVisible 是不是开启客服内部的音视频掌握条
- success 初始化胜利的回调
- error 初始化失足的回调
- ssoReady 单点登录页面准备就绪
- kefuReady 进入客服页面了
- kefuWSClose 客服内部的ws通道失足
1.2、client.initInnerCallBack要领申明
- chatCloseCB ==客服内部IM会话封闭的回调关照==
- videoCloseCB ==客服内部音视频封闭的回调关照==
- visitorStreamOffline ==集会成员视频流离线凌驾3s==
1.3 初始化示例
window.onload = function() {
var client;
function initIMClient(){
var HXPlugin = window.HXPlugin = 0;
var wssrc = location.protocol == "https:" ? "wss://lccp-ex.easemob.com:1040" : "ws://127.0.0.1:1040";
client = new IMClient({
baseWsUrl: wssrc,
videoBarVisible: true,
ssoTo: "https://kefu.wecvideotest.pingan.com.cn/mo/agent/webapp/chat",
success: function(data){
console.log("胜利衔接", data);
HXPlugin = 0;
this.linkStatus = true;
},
error: function(error){
this.linkStatus = false;
this.ready = false;
console.log(error);
HXPlugin = 0;
},
ssoReady: function(){
console.log("进入单点登录页面了,能够登录了 123+");
},
kefuReady: function(){
console.log("进入客服体系了,能够退出了 123-");
},
kefuWSClose: function(){
console.log("kefu体系的ws断开");
}
});
client.linkStatus = false;
client.ready = false;
client.detactExeReadyInterval = null;
/**
* 吸收exe内部操纵的回调
*/
client.initInnerCallBack({
chatCloseCB: function(data){
console.log(data);
},
visitorStreamOffline: function(data){
console.log(data)
}
});
return client;
}
window.initIMClient = initIMClient;
}
2、详细API申明
2.1、 exe窗口相干
client.startLogin 插件登录
- minimize 是不是在登录的时刻最小化窗口
- data 传入登录的参数 url必传
- success 登录胜利的回调关照
- error 登录失利的回调关照
client.startLogin({
minimize: true,
data: {
url: "https://pingan-test-video.easemob.com/doLogin?name=23160006&pwd=76160006&returnTo=",
},
success: function (data) {
console.log(data, "登录胜利回调");
},
error: function (err) {
// 登录超时逻辑处置惩罚
if (err && err.code == -1) {
// 此时登录超时
console.log("登录超时")
}
}
})
setWindowSize 调解exe窗口宽高
- width 宽度
- height 高度
client.setWindowSize({
width: "300",
height: "400"
});
minimize exe窗口最小化
client.minimize()
startup windows环境下拉起exe插件
client.startup({ clientUrl: "pocprotocol://" })
restore exe窗口复原
client.restore()
quit exe窗口退出
client.quit()
2.2、IM文本会话相干要领
pickUpSession 接起IM会话
- session_id 会话id,必填
- success IM接起胜利
- error IM接起失利
client.pickUpSession({
session_id: serviceSessionId,
success: function (data) {
console.log("IM接起胜利!", data);
},
error: function (data) {
console.log("IM接起失利!", data);
}
});
chatClose 挂断当前IM会话
client.chatClose()
2.3、 音视频相干要领
videoPickUp 主坐席接起音视频
- session_id 必填 会话id
- success 音视频接起集会建立胜利的回调
- visitorDisconnect 音视频接通后访客端引发的挂断
- timeoutDisconnect 超时未接的回调
- error 音视频接起失利的回调
client.videoPickUp({
session_id: serviceSessionId,
success: function (data) {
console.log('video接起胜利', data);
},
timeoutDisconnect: function(data) {
console.log('访客超时未接听', data)
},
visitorDisconnect: function(data) {
console.log('音视频接通后访客端引发的挂断', data)
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function(error) {
console.log(error, 'videoPickUp err')
}
});
multipleVideoPickUp ==被约请==的三方坐席接起音视频
- acceptSuccess 三方坐席接收当前视频胜利
- exitSuccess 三方坐席脱离当前视频胜利
- error 三方坐席到场音视频失足
client.multipleVideoPickUp({
acceptSuccess: function (data) {
console.log('三方坐席接收当前视频胜利', data);
},
exitSuccess: function (data) {
console.log('三方坐席脱离当前视频胜利', data);
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function(error) {
console.log('三方坐席到场音视频失足', error)
}
});
videoInviteAgent 约请三方坐席
- agentName 必填 被约请的三方坐席的name
- inviteSuccess 三方坐席视频约请发送胜利
- acceptSuccess 三方坐席接收视频胜利
- exitSuccess 三方坐席退出胜利
- error 约请三方坐席失利
client.videoInviteAgent({
agentName: 'XXXX',
inviteSuccess: function (data) {
console.log('三方坐席视频约请发送胜利', data);
},
acceptSuccess: function (data) {
console.log('三方坐席接收视频胜利', data)
},
exitSuccess: function (data) {
console.log('三方坐席退出胜利', data)
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function(data) {
console.log(data, '约请坐席失利')
}
})
callbackToVisitor 外呼访客
- visitorName 必填 访客name
- inviteSuccess 外呼-访客约请发送胜利
- acceptSuccess 外呼-访客接收约请
- visitorRefuse 外呼-访客拒接约请
- visitorDisconnect 外呼-访客挂断
- videoBusyMark 外呼-访客忙线
- timeoutDisconnect 外呼-访客超时未接听
- kefuCloseVideoSuccess 外呼-客服挂断音视频
- error 外呼-访客 失足,毛病信息
client.callbackToVisitor({
visitorName: 'XXXX',
startVideo: true,
inviteSuccess: function (data) {
console.log(data, '外呼-访客约请发送胜利')
},
acceptSuccess: function (data) {
console.log('外呼-访客接收约请', data)
},
visitorRefuse: function (data) {
console.log('外呼-访客拒接约请', data)
},
visitorDisconnect: function (data) {
console.log('外呼-访客挂断', data)
},
videoBusyMark: function (data) {
console.log('外呼-访客忙线', data)
},
timeoutDisconnect: function (data) {
console.log('外呼-访客超时未接听', data)
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function (error) {
console.log('外呼-访客 失足', error)
/*error: {
code: "SDK_11",
msg: "当前访客正在进行会话,无法外呼"
}
error: {
code: "SDK_08",
msg: "查询id失足,请搜检访客信息是不是准确"
}*/
}
});
videoInviteCurrentVisitor 约请当前访客音视频
回调同外呼访客,参上
client.videoInviteCurrentVisitor({
inviteSuccess: function (data) {
console.log(data, '约请当前-访客约请发送胜利')
},
acceptSuccess: function (data) {
console.log('约请当前-访客接收约请', data)
},
visitorRefuse: function (data) {
console.log('约请当前-访客拒接约请', data)
},
visitorDisconnect: function (data) {
console.log('约请当前-访客挂断', data)
},
videoBusyMark: function (data) {
console.log('约请当前-访客忙线', data)
},
timeoutDisconnect: function (data) {
console.log('约请当前-访客超时未接听', data)
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function (data) {
console.log('约请当前-访客 失足', data)
}
});
videoInviteVisitor 约请三方访客
回调同外呼访客,参上
client.videoInviteVisitor({
visitorName: 'XXXX',
inviteSuccess: function (data) {
console.log(data, '约请三方-访客约请发送胜利')
},
acceptSuccess: function (data) {
console.log('约请三方-访客接收约请', data)
},
visitorRefuse: function (data) {
console.log('约请三方-访客拒接约请', data)
},
visitorDisconnect: function (data) {
console.log('约请三方-访客挂断', data)
},
videoBusyMark: function (data) {
console.log('约请三方-访客忙线', data)
},
timeoutDisconnect: function (data) {
console.log('约请三方-访客超时未接听', data)
},
kefuCloseVideoSuccess: function(data) {
console.log('客服挂断音视频', data)
},
error: function (data) {
console.log('约请三方-访客 失足', data)
/*error: {
code: "SDK_11",
msg: "当前访客正在进行会话,无法外呼"
}
error: {
code: "SDK_08",
msg: "查询id失足,请搜检访客信息是不是准确"
}*/
}});
videoDisconnect 挂断音视频
client.videoDisconnect()
2.4、截图&照相
// 照相
client.takePhoto({
success: function (data) {
console.log(data, '照相数据')
},
error: function(error) {
console.log(error, '照相失利')
// 照相不可用会返回以下音讯 {"mark":"takePhoto","subMark":"error","error":{"type":"snapShotDisabled","msg":"snapShotDisabled"}}
}
});
// 截图
client.snapshot({
success: function (data) {
console.log(data, '截图数据')
},
error: function(error) {
console.log(error, '截图失利')
}
});
2.5、 同享
inviteShare 约请访客同享
- open 访客同享屏幕打开了
- close 访客同享屏幕封闭了
- error 约请访客同享屏幕失利
client.inviteShare({
open: function (data) {
console.log('同享屏幕约请胜利', data)
},
close: function (data) {
console.log('访客同享屏幕封闭了', data)
},
error: function (error) {
console.log('约请访客同享屏幕失利')
}
});
2.6、 其他
sessionCount 猎取当前正在进行的会话的数目
client.sessionCount({
success: function(data) {
console.log(data.payload.sessionCount)
}
})
sessionState 猎取当前正在进行的会话的概况
client.sessionState({
success: function(data) {
console.log(data)
}
})
isMultipleVideo
参数申明
- success中的data.data为布尔值,true代表当前正在三方视频中,false代表当前不在三方视频中
client.isMultipleVideo({
success: function(data) {
console.log(data.data, '当前是不是正在三方视频中')
}
})
isShareState
参数申明
- success中的data.data为布尔值,true代表当前正在同享中,false代表当前不在同享中
client.isShareState({
success: function(data) {
console.log(data.data, '当前是不是在同享中')
}
})
release申明
- api的md文档供应 – 11.28
版本-v190307
发版申明:
1、整合brower端和app端sdk,采纳状况机治理运用事情状况,
2、修正部份api的挪用体式格局
状况机
const state = {
currentState: '000000',
//未迁入
notLogin: '000000',
//忙
visitorInvite_timeout: '001001',
agentInvite_timeout: '001002',
//闲
callVisitor_visitorRefuse:'002001',
callVisitor_Timeout:'002002',
callVisitor_busy:'002003',
callVisitor_error:'002004',
callVisitor_agentCloseVideo_notAnswer:'002005',
callCurrentVisitor_visitorRefuse:'002006',
callCurrentVisitor_timeout:'002007',
callCurrentVisitor_busy:'002008',
callCurrentVisitor_error:'002009',
callCurrentVisitor_agentCloseVideo_notAnswer:'002010',
visitorInvite_error: '002011',
agentInvite_error: '002012',
//外呼中
callVisitor_inviteSendSuccess:'003001',
callCurrentVisitor_inviteSendSuccess:'003002',
//来电中
//话后处置惩罚
inviteThirdVisitor_masterAgentCloseVideo: '005001',
inviteThirdAgent_masterAgentCloseVideo: '005002',
callVisitor_visitorDisconnect:'005003',
callVisitor_agentCloseVideo_answered:'005004',
callCurrentVisitor_visitorDisconnect:'005005',
callCurrentVisitor_agentCloseVideo_answered:'005006',
visitorInvite_visitorDisconnect: '005007',
visitorInvite_agentCloseVideo: '005008',
agentInvite_visitorDisconnect: '005009',
agentInvite_agentCloseVideo: '0050010',
//两方通话中
inviteThirdVisitor_visitorRefuse:'006001',
inviteThirdVisitor_Timeout:'006002',
inviteThirdVisitor_busy:'006003',
inviteThirdVisitor_error:'006004',
inviteThirdVisitor_visitorDisconnect:'006005',
//inviteThirdAgent_visitorRefuse:'006006',
//inviteThirdAgent_Timeout:'006007',
//inviteThirdAgent_busy:'006008',
inviteThirdAgent_error:'006009',
inviteThirdAgent_visitorDisconnect:'006010',
callVisitor_VisitorAcceptSuccess:'006011',
callCurrentVisitor_VisitorAcceptSuccess:'006012',
visitorInvite_Success: '006013',
agentInvite_Success: '006014',
//约请中
inviteThirdVisitor_inviteSendSuccess:'007001',
inviteThirdAgent_inviteSendSuccess:'007002',
//三方通话中
inviteThirdVisitor_success:'008001',
inviteThirdAgent_success:'008002',
}
000000未签入
001000忙
001001 访客约请-超时
001002 坐席约请-超时
002000闲
002001 外呼访客-访客谢绝
002002 外呼访客-访客超时
002003 外呼访客-访客忙
002004 外呼访客-访客毛病
002005 外呼访客-坐席挂断(未接通)
002006 外呼当前访客-访客谢绝
002007 外呼当前访客-访客超时
002008 外呼当前访客-访客忙
002009 外呼当前访客-访客毛病
0020010 外呼当前访客-坐席挂断(未接通)
002011 访客约请-毛病
002012 坐席约请-毛病
003000外呼中
003001 外呼访客-约请发送胜利
003002 外呼当前访客-约请发送胜利
004000来电中
005000话后处置惩罚
005001 约请三方访客-主坐席挂断
005002 约请三方坐席-主坐席挂断
005003 外呼访客-访客挂断
005004 外呼访客-坐席挂断(接通后)
005005 外呼当前访客-访客挂断
005006 外呼当前访客-坐席挂断(接通后)
005007 访客约请-访客挂断
005008 访客约请-坐席挂断
005009 坐席约请-访客挂断
005010 坐席约请-坐席挂断
006000两方通话中
006001 约请三方访客-访客谢绝
006002 约请三方访客-访客忙
006003 约请三方访客-访客超时
006004 约请三方访客-访客毛病
006005 约请三方访客-访客挂断
006006 约请三方坐席-坐席谢绝
006007 约请三方坐席-坐席忙
006008 约请三方坐席-坐席超时
006009 约请三方坐席-坐席毛病
006010 约请三方坐席-坐席挂断
006011 外呼访客-访客接收视频胜利
006012 外呼当前访客-访客接收视频胜利
006013 访客约请-胜利
006014 坐席约请-胜利
007000约请中
007001 约请三方访客-约请发送胜利
007002 约请三方坐席-约请发送胜利
008000三方通话中
008001 约请三方访客-访客接收视频胜利
008002 约请三方坐席-坐席接收视频胜利
相干api挪用修正
1、相干api采纳一致挪用参数花样
2、参数为回调函数, para1: obj,
para2: func(state, [payload])
videoInviteVisitor 约请三方访客
client.videoInviteVisitor({
visitorName: 'XXXX',
},function(state, payload){
if (state = 006001){
console.log('约请三方访客-访客拒接约请')
} else if (state = 006002){
console.log('约请三方访客-访客忙线')
} else if (state = 006003){
console.log('约请三方访客-访客超时')
} else if (state = 006004){
console.log('约请三方访客-访客毛病')
} else if (state = 006005){
console.log('约请三方访客-访客挂断')
} else if (state = 007001){
console.log('约请三方访客-约请发送胜利')
} else if (state = 008001){
console.log('约请三方访客-访客接收视频胜利')
} else if (state = 005001){
console.log('约请三方访客-主坐席挂断')
}
});
videoInviteAgent 约请三方坐席
client.videoInviteAgent({
agentName: 'XXXX'
},function(state, payload){
if (state = 006006){
console.log('约请三方访客-访客拒接约请')
} else if (state = 006007){
console.log('约请三方访客-访客忙线')
} else if (state = 006008){
console.log('约请三方访客-访客超时')
} else if (state = 006009){
console.log('约请三方访客-访客毛病')
} else if (state = 0060010){
console.log('约请三方访客-访客挂断')
} else if (state = 007002){
console.log('约请三方访客-约请发送胜利')
} else if (state = 008002){
console.log('约请三方访客-访客接收视频胜利')
} else if (state = 005002){
console.log('约请三方访客-主坐席挂断')
}
});
*注重:原始api只要约请 毛病、发送胜利、吸收胜利、第三方坐席挂断(exitSuccess而非visitorDisconnect)住坐席挂断
callbackToVisitor 外呼访客
- visitorName **必填** 访客name
- inviteSuccess 外呼-访客约请发送胜利
- acceptSuccess 外呼-访客接收约请
- visitorRefuse 外呼-访客拒接约请
- visitorDisconnect 外呼-访客挂断
- videoBusyMark 外呼-访客忙线
- timeoutDisconnect 外呼-访客超时未接听
- kefuCloseVideoSuccess 外呼-客服挂断音视频
- error 外呼-访客 失足,毛病信息
client.callbackToVisitor({
visitorName: 'XXXX',
startVideo: true,
},function(state, payload){
if (state = 002001){
console.log('外呼访客-访客拒接约请')
} else if (state = 002002){
console.log('外呼访客-访客超时')
} else if (state = 002003){
console.log('外呼访客-访客忙线')
} else if (state = 002004){
console.log('外呼访客-访客毛病')
} else if (state = 002005){
console.log('外呼访客-坐席挂断(未接通)')
} else if (state = 003001){
console.log('外呼访客-约请发送胜利')
} else if (state = 006011){
console.log('外呼访客-访客接收视频胜利')
} else if (state = 005003){
console.log('外呼访客-访客挂断')
} else if (state = 005004){
console.log('外呼访客-坐席挂断(已接通)')
}
}
});
videoInviteCurrentVisitor 约请当前访客音视频
client.videoInviteCurrentVisitor(null, function(state, payload){
if (state = 002006){
console.log('外呼当前访客-访客拒接约请')
} else if (state = 002007){
console.log('外呼当前访客-访客超时')
} else if (state = 002008){
console.log('外呼当前访客-访客忙线')
} else if (state = 002009){
console.log('外呼当前访客-访客毛病')
} else if (state = 0020010){
console.log('外呼当前访客-坐席挂断(未接通)')
} else if (state = 003002){
console.log('外呼当前访客-约请发送胜利')
} else if (state = 006012){
console.log('外呼当前访客-访客接收视频胜利')
} else if (state = 005005){
console.log('外呼当前访客-访客挂断')
} else if (state = 005006){
console.log('外呼当前访客-坐席挂断(已接通)')
}
});
videoPickUp 主坐席接起音视频
- session_id 必填 会话id
- success 音视频接起集会建立胜利的回调
- visitorDisconnect 音视频接通后访客端引发的挂断
- timeoutDisconnect 超时未接的回调
- error 音视频接起失利的回调
client.videoPickUp({
session_id: serviceSessionId,
}, function(state, payload){
if (state = 001001){
console.log(‘访客约请-访客超时未接听')
} else if (state = 002011){
console.log('访客约请-毛病')
} else if (state = 006013){
console.log('访客约请-胜利')
} else if (state = 005007){
console.log('访客约请-访客挂断(接通后)')
} else if (state = 005008){
console.log('访客约请-坐席挂断(接通后)')
}
});
multipleVideoPickUp ==被约请==的三方坐席接起音视频
- acceptSuccess 三方坐席接收当前视频胜利
- exitSuccess 三方坐席脱离当前视频胜利
- error 三方坐席到场音视频失足
client.multipleVideoPickUp(null, function(state, payload){
if (state = 001002){
console.log('坐席约请-访客超时未接听')
} else if (state = 002011){
console.log('坐席约请-毛病')
}else if (state = 006014){
console.log('坐席约请约请-胜利')
} else if (state = 005009){
console.log('坐席约请-访客挂断(接通后)')
} else if (state = 005010){
console.log('坐席约请-坐席挂断(接通后)')
}
});