小程序微信小程序

微信小程序使用腾讯云云通信IM(登录)

2019-05-16  本文已影响0人  是狮子呀_

首先看文档,跑通demo。https://cloud.tencent.com/document/product/269/32941

第一步:集成SDK并引用至项目      https://github.com/tencentyun/TIMSDK

集成SDK

登录分为独立模式和托管模式。

如果业务的帐号体系是托管模式,还需要引入TLS Web SDK。

托管模式SDK函数调用顺序

我项目中用到的独立模式,则不需要上面的操作。

独立模式函数调用顺序 (当然这些步骤托管模式下也是需要的)      

独立模式函数调用顺序

emmmm.....反正上边能看懂就看,我直接上代码啦。

第二步:登录

登录用到的方法是 webim.login(loginInfo, listeners,options,cbOk,cbErr) 第一个是用户信息对象,第二个是事件回调对象,第三个是其他对象,cnOk是成功回调,cnErr是错误回调。

// 用户信息对象

    var loginInfo = {

      'sdkAppID': 'xxxxxx', //用户所属应用id,必填( 创建腾讯云通讯应用获取到的 sdkappid)

      'accountType': 'xxxxxx', //用户所属应用帐号类型,必填 (在帐号体系集成配置中获取到的 accountType)

      'identifier': 'xxxxxx', //当前用户ID,必须是否字符串类型,必填(通过控制台开发辅助工具生成的identifier )

      'userSig': 'xxxxxx',,//当前用户身份凭证,必须是字符串类型,必填( 通过控制台开发辅助工具生成的 userSig)

      'identifierNick': null, //当前用户昵称,不用填写,登录接口会返回用户的昵称,如果没有设置,则返回用户的id

    };

由于我项目中只用到群聊消息收发功能,所有其他监听事件自行百度。附上api文档 https://cloud.tencent.com/document/product/269/1595

//监听事件

var listeners = {

    "onConnNotify": onConnNotify//监听连接状态回调变化事件,必填

    ,"onMsgNotify": onMsgNotify//监听新消息(私聊,普通群(非直播聊天室)消息,全员推送消息)事件,必填

};

//监听连接状态回调变化事件

    var onConnNotify = function(resp) {

      switch (resp.ErrorCode) {

        case webim.CONNECTION_STATUS.ON:

          console.log('建立连接成功: ' + resp.ErrorInfo);

          break;

        case webim.CONNECTION_STATUS.OFF:

          wx.showModal({

            title: '提示',

            content: '连接已断开,无法收到新消息,请检查下你的网络是否正常',

          })

          break;

        case webim.CONNECTION_STATUS.RECONNECT:

          wx.showModal({

            title: '提示',

            content: '连接状态恢复正常',

          })

          break;

        default:

          wx.showModal({

            title: '提示',

            content: '未知连接状态,请重新登录',

          })

          break;

      }

    };

//监听新消息事件

    //newMsgList 为新消息数组,结构为[Msg]

    function onMsgNotify(newMsgList) {

      var sess, newMsg;

      var selToID = wx.getStorageSync('selToID');

      //获取所有聊天会话

      var sessMap = webim.MsgStore.sessMap();

      for (var j in newMsgList) { //遍历新消息

        var newMsg = newMsgList[j];

        if (newMsg.getSession().id() == selToID) { //为当前聊天对象的消息

          var selSess = newMsg.getSession();

          console.log(newMsg);

          that.addMsg(newMsg);  //在聊天窗体中新增一条消息

        }

      }

    }

var isAccessFormalEnv = true; //是否访问正式环境

var isLogOn = false; //是否开启sdk在控制台打印日志

var options = {

      'isAccessFormalEnv': isAccessFormalEnv, //是否访问正式环境,默认访问正式,选填

      'isLogOn': isLogOn //是否开启控制台打印日志,默认开启,选填

    }

webim.login(loginInfo, listeners, options, function(resp) {

       console.log("登录成功------------------")

    }, function(err) {

      console.log("登录失败------------------", err.ErrorInfo)

    })

后续会慢慢更新群组获取,聊天室收发消息。

萌新小白,文章多有不到之处,qq:215227670,一起交流。

上一篇下一篇

猜你喜欢

热点阅读