uni-app引入腾讯IM---登录

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('登录失败')
	})
	}
})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值