腾讯云接口文档地址:https://cloud.tencent.com/document/product/269/37445#sdk-.E7.99.BB.E5.BD.95
1)在官网找到需要的SDK下载,并放到自己的项目中(我的在static/js中)
2)引入文件后就可以使用,首先是登陆,登陆分为托管和独立模式,托管还需要引用额外的文件3)在需要使用的页面引入webim
import webim from 'static/js/webim.js'
登陆用到的webim.login(loginInfo,listener,options,cbOk,cbErr)
//用户信息对象(一般调用后台接口获取) uni.request({ url:'url地址+接口', data:{要传递的参数}, success:(res)=>{ //用户信息 var loginInfo={ 'sdkAppID':res.data.data.IMSDKID,//用户标识接入SDK的应用ID(必填) 'appIDAt3rd':res.data.data.IMSDKID,//用户使用OAuth授权体系分配的appid(必填) 'identifier':res.data.data.imUser,//用户账号(必填) 'identifierNick':res.data.data.nickName,//用户昵称(选填), 'accountType':12345,//账号类型(必填), 'userSig':xxxxxx//鉴权token,identifier不为空时,必填 }; //监听事件链接 var onConnNotify=function(resp){ var info; switch(resp.ErrorCode){ case webim.CONNECTION_STATUS.ON: webim.Log.warn('建立链接成功'+resp.ErrorInfo); break; case webim.CONNECTION.STATUS.OFF: info="链接已断开,无法收到新消息,请检查网路是否正常"+resp.ErrorInfo; uni.showToast({ title:info, icon:'none' }); break; case webim.CONNECTION_STATUS_RECONNECT: info='连接状态恢复正常'+resp.ErrorInfo; uni.showToast({ title:info, icon:'none' }); break; default: webim.Log.error('未知链接状态='+resp.ErrorInfo);//错误信息 break; } }; //监听新消息事件(newMsgList为webim.Msg数组,即[webim.Msg]) var onMsgNotify=function(newMsgList)=>{ //console.log(newMsgList); var sess,newMsg; //获取所有聊天回话 var sessMap=webim.MsgStore.sessMap(); //遍历新消息 for(var j in newMsgList){ newMsg=newMsgList[j]; if(newMsg.getSession(),id()==selToID){ //为当前聊天对象的消息 sesSess=newMsg.getSession(); //在聊天窗体中新增一条消息 //console.log(newMsg); addMsg(newMsg); } } //消息已经上报,以及设置回话自动已读 webim.setAutoRead(selSess,true,true); for(var i in sessMap){ sess=sessMap[i]; if(selToID!=sess.id()){//更新其他聊天对象的未读消息数 updateSessDiv(sess.type(),sess.id(),sess.unread()) } } }; //事件回调,监听事件 var listeners={ "onConnNotify":onConnNotify,//监听连接状态(必填) "jsonpCallback":jsonpCallback,//IE9(含)以下浏览器用的jsonp回调函数 "onMsgNotify":onMsgNotify,//监听新消息(必填), "onBigGroupMsgNotify": onBigGroupMsgNotify//监听新消息(直播聊天室)事件,直播场景下必填,如果不是可填{} "onGroupSystemNotifys": onGroupSystemNotifys//监听(多终端同步)群系统消息事件,如果不需要监听,可不填 "onGroupInfoChangeNotify": onGroupInfoChangeNotify//监听群资料变化事件,选填 "onFriendSystemNotifys": onFriendSystemNotifys//监听好友系统通知事件,选填 "onProfileSystemNotifys": onProfileSystemNotifys//监听资料系统(自己或好友)通知事件,选填 "onKickedEventCall" : ()=>{}//被其他登录实例踢下线 "onC2cEventNotifys": ()=>{}//监听 C2C 系统消息通道 } //调用login接口 webim.login(loginInfo,listeners,options,(resp)=>{ //成功 loginInfo.identifierNick=resp.identifierNick; //设置登录信息.(首先在store中设置loginInfo) this.$store.commit('setLoginInfo',loginInfo) },(error)=>{ console.log('登录失败') }) } })