初始化及登录
初始化SDK
在页面初始化完成后立即调用H5_SDK的初始化方法,该方法会返回初始化的结果(obj.code)。如果初始化失败(obj.code!=200),客户根据自己的业务逻辑做处理,建议关闭页面。如果初始化成功(obj.code=200),才可以进行登录等后续操作,如果登录成功,用户可以根据unsupport(该值表示初始化以后不支持的功能,数组类型,以错误码形式表示)字段,做一些逻辑处理,例如屏蔽页面上不支持的功能等。示例代码如下(参考DEMO中的IM.init方法):
- //初始化SDK
- var resp = RL_YTX.init(“用户的appid”);
- if(170002== resp.code){
- //缺少必要参数,详情见msg参数
- //用户逻辑处理
- }else if(174001 == resp.code){
- //不支持HTML5,关闭页面//用户逻辑处理}
- else if(200 == resp.code){
- //初始化成功
- //用户逻辑处理
- //判断不支持的功能,屏蔽页面展示
- var unsupport = resp.unsupport;
- }
SDK关闭日志输出
在初始化之后调用RL_YTX.setLogClose()即可,若要输出日志内容,将此代码屏蔽就可以恢复。
登录及设置回调
初始化完成以后,用户可以进行登录操作。用户可以在登录成功的回调,或者初始化成功以后设置通知回调监听。示例代码如下(参考DEMO中的IM.EV_login方法):
注意:
sig参数由用户请求自己的服务器生成,sig规则:MD5(appid+userName+timestamp(yyyyMMddHHmmss)+apptoken); MD5为标准MD5格式。timestamp和LoginBuilder中设置的时间戳必须一样。当voip账号密码登录时,可以不传sig。
- //账号登录参数设置
- var loginBuilder = new RL_YTX.LoginBuilder();
- //登录类型 1账号登录,3voip账号密码登录
- loginBuilder.setType(1);
- //设置用户名
- loginBuilder.setUserName(“用户登录名”);
- //type值为1时,密码可以不赋值
- loginBuilder.setPwd();
- //设置sig
- loginBuilder.setSig(sig);
- //设置时间戳
- loginBuilder.setTimestamp(yyyyMMddHHmmss);
- //执行用户登录
- RL_YTX.login(loginBuilder, function(obj){
- //登录成功回调
- //注册接收消息事件监听
- RL_YTX.onMsgReceiveListener(function(obj){
- //收到push消息或者离线消息或判断输入状态//如果obj.msgType==12 判断obj.msgDomainn的值//obj.msgDomain 0 无输入状态 1 正在输入 2 正在录音
- });
- //注册群组通知事件监听
- RL_YTX.onNoticeReceiveListener(function(obj){
- //收到群组通知});
- );}, function(obj){
- //登录失败方法回调
- })
连接状态变更
- RL_YTX.onConnectStateChangeLisenter(function(obj){
- //连接状态变更
- //变更状态 1 断开连接 2 重连中 3 重连成功 4 被踢下线 5 断开连接,需重新登录
- obj.code;
- // 断线需要人工重连
- );}
登出
当用户切换账号或者退出时,需要调用登出接口,示例代码如下(参考DEMO中的IM. EV_logout方法)
- RL_YTX.logout(function(){
- //登出成功处理
- }, function(obj){
- //登出失败处理
- });
关闭浏览器事件绑定
对外开放的onbeforeunload接口
- //该方法会返回一个ID,用来清除该事件
- var id = RL_YTX.bindBeforeUnload(function(){})
- //清除事件的时候 会根据绑定时候返回的ID进行清除
- RL_YTX.unbindBeforeUnload(id);