微信小程序使用腾讯云IM

新项目已经写了很久啦
这个项目里主要的难点其实是1v1聊天。他们对比了好几家的即时通讯,最后选择了腾讯云通信。我猜,可能是因为腾讯云上说日活低于10w可以不付费吧。省钱嘛~踩坑踩了大概一周多两周了,就把一些步骤写下来,万一以后也会用到呢。不过,腾讯云的demo和sdk真的是万年不更新了,真的是好难用啊….坑都是自己一个一个踩一个一个填的。

1.下载sdk并且引用至项目

在官网中找到自己所需要的sdk并且下载,然后放在自己的项目中,引用进去。

    var webim = require('../../utils/webim.js');

在将sdk文件引用到项目中后,就可以开始使用了,首先是登陆。登陆分为独立模式和托管模式,托管模式还需要引用额外的文件。不过,由于我们的项目只用到了独立模式,所以我也只有从独立模式写起。

2.登陆

登陆需要用到的方法是 webim.login

    webim.login(loginInfo,listener,options,cbOk,cbErr);//第一个是登陆信息,第二个是事件回调,第三个其他对象,后面两个就是成功回调和错误回调//用户信息对象var loginInfo = {'sdkAppID':xxxxxxx,//用户标识接入SDK的应用ID,必填。(这个可以在腾讯云的后台管理看到)'appIDAt3rd':xxxxxxx,//App 用户使用 OAuth 授权体系分配的 Appid,必填    (这个其实和上面那个是一样的)'identifier':yang47,//用户帐号,必填   (这个就是自己服务器里,每个用户的账号,可以自己设置)'identifierNick':"杨小花",//用户昵称,选填   (这个填不填都没什么问题,但是我个人觉得,聊天嘛,还是得有一个网名)'accountType':12345,//账号类型,必填   (这个可以在后台管理看到,但是腾讯的文档上是没有这个的!!!但是这个必须填,不填不报错)'userSig':xxxxxxx //鉴权 Token,identifier 不为空时,必填   我觉得这个也是必填的,这个需要在一开始就从后端获取。
}//事件回调对象 监听事件
var listeners = {"onConnNotify": onConnNotify//监听连接状态回调变化事件,必填,"jsonpCallback": jsonpCallback//IE9(含)以下浏览器用到的 jsonp 回调函数,,"onMsgNotify": onMsgNotify//监听新消息(私聊,普通群(非直播聊天室)消息,全员推送消息)事件,必填,"onBigGroupMsgNotify": onBigGroupMsgNotify//监听新消息(直播聊天室)事件,直播场景下必填,"onGroupSystemNotifys": onGroupSystemNotifys//监听(多终端同步)群系统消息事件,如果不需要监听,可不填,"onGroupInfoChangeNotify": onGroupInfoChangeNotify//监听群资料变化事件,选填,"onFriendSystemNotifys": onFriendSystemNotifys//监听好友系统通知事件,选填,"onProfileSystemNotifys": onProfileSystemNotifys//监听资料系统(自己或好友)通知事件,选填,"onKickedEventCall" : onKickedEventCall//被其他登录实例踢下线,"onC2cEventNotifys": onC2cEventNotifys//监听 C2C 系统消息通道
};
//1v1单聊的话,一般只需要 'onConnNotify' 和 'onMsgNotify'就行了。
//监听连接状态回调变化事件
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;alert(info);webim.Log.warn(info);break;case webim.CONNECTION_STATUS.RECONNECT:info = '连接状态恢复正常: ' + resp.ErrorInfo;alert(info);webim.Log.warn(info);break;default:webim.Log.error('未知连接状态: =' + resp.ErrorInfo); //错误信息break;}
};//监听新消息事件     注:其中参数 newMsgList 为 webim.Msg 数组,即 [webim.Msg]。
//newMsgList 为新消息数组,结构为[Msg]
function onMsgNotify(newMsgList) {//console.warn(newMsgList);var sess, newMsg;//获取所有聊天会话var sessMap = webim.MsgStore.sessMap();for (var j in newMsgList) {//遍历新消息newMsg = newMsgList[j];if (newMsg.getSession().id() == selToID) {//为当前聊天对象的消息selSess = newMsg.getSession();//在聊天窗体中新增一条消息//console.warn(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());}}
}//webim.login(loginInfo, listeners, options, function (resp) {loginInfo.identifierNick = resp.identifierNick; //设置当前用户昵称console.log("登录成功");that.setData({loginInfo: loginInfo,});}, function (err) {console.log("登录失败------------------", err.ErrorInfo)})

【小程序】微信小程序使用腾讯云IM(一):登录相关推荐

  1. 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏微信小程序

    这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...

  2. 微信小程序----微信小程序浏览pdf文件

    微信小程序----微信小程序浏览pdf文件 说明:通过wx.downloadFile,wx.openDocumen来实现打开pdf文件.只需在js操作即可. HTTP.Config.Request(' ...

  3. 小程序源码:炫酷手持滚动弹幕生成小工具微信小程序-多玩法安装简单

    这是一款滚动弹幕生成微信小程序源码 让弹幕文字在手机屏幕上跑起来,LED弹幕 手机弹幕,告白神奇,等 支持多种模板,每一种模板都支持自定义颜色等等 字体跳动,字体表白等等 另外用户也可以支持自定义文字 ...

  4. 微信小程序—微信小程序端支付代码

    只有微信小程序端的代码,如下 Page({data: {},onLoad: function (options) {// 页面初始化 options为页面跳转所带来的参数var that = this ...

  5. 小程序 | 微信小程序实现商品分类列表

    小程序 | 微信小程序实现商品分类列表 一.效果展示 二.代码实现 <!-- wxml --> <view class="container"> <! ...

  6. 生鲜小程序 微信小程序怎么制作 临沂修齐网络专业制作微信小程序

    生鲜小程序 微信小程序怎么制作 临沂修齐网络专业制作微信小程序 生鲜小程序开发功能介绍: 1.产品展示:通过扫码或者搜索小程序,用户可以看到不同品种的新鲜蔬菜.水果以及肉类. 2.定时收货:买家可以预 ...

  7. 微信小程序:娱乐小工具微信小程序源码下载支持多种流量主

    这应该是属于娱乐小工具呢还是属于工具箱类型就看你们怎么分辨了 当然啦说是娱乐也可以,里面功能应该也属于娱乐性 如果说是工具类型也可以,里面也属于工具吧 该程序由几个小功能组合而成如有: 网易云音乐下载 ...

  8. 抛硬币小游戏微信小程序源码

    简介: 抛硬币小游戏微信小程序源码 日常生活中遇到选择?抛个硬币看看天意吧! 有了这个小程序,起不起床拋一下,叫不叫外卖拋一下,打不打扫房间拋一下,让生活充满乐趣~ 人生决定不了的决定就让上天来决定吧 ...

  9. 小程序 | 微信小程序中使用位置API打开地图

    小程序 | 微信小程序中使用位置API打开地图 一.效果展示 二.代码实现 使用微信内置地图查看位置,调用wx.openLocationAPI,具体内容可以查看微信官方文档. // js let In ...

  10. 小程序 | 微信小程序实现循环嵌套数据选择

    小程序 | 微信小程序实现循环嵌套数据选择 一.效果展示 二.代码实现 在.wxml文件中,有时从后台传来的数据可能会出现数组嵌套数组的情况,需要利用wx:for嵌套实现数据的展示.这时,外层循环正常 ...

最新文章

  1. [译] PHP7 数组:HashTable
  2. matlab如何绘制三维隐函数?
  3. 【ASP】Menu菜单导航
  4. xencenter vgpu 看不见_有一种设计是“看不见,但感受得到”
  5. 工作琐事太多怎么办_东莞夫妻感情不合怎么办 东莞专业离婚咨询
  6. mysql配置性能_MySQL配置性能优化
  7. Redhat5下haproxy+keepalived+nginx配置笔记
  8. maven 执行testng.xml文件失败解决问题
  9. 计算机网络知识大总结,包含各种熟悉得不能再熟悉的术语解析
  10. 39页第五题计算数列之和
  11. shp数据导入PostGIS,使用geoserver发布wms服务
  12. moment.js获取一周的第一天
  13. jQuery实现form表单reset按钮重置清空表单功能
  14. 【数据产品案例】美团外卖O2O的用户画像实践
  15. PHP+MYSQL+SCWS 做自己的站内搜索引擎
  16. 获取当前时间前3天的零点时间
  17. Win10强制更新关闭方法
  18. 【css】fa图标变细
  19. 刀片服务器在哪看cpu型号,了解认识刀片服务器
  20. VSPD 串口调试工具!!

热门文章

  1. (二)认识商业化体系
  2. [转] 男人结婚前后卫生间大比照
  3. 扫地机器人发火_盘点扫地机器人那些让人吐血三升的事,你有遇到过吗?
  4. Linux查看机器配置信息
  5. windows下编译cef最新版本并支持mp3/mp4
  6. Java8 Lambda杀手锏
  7. HashSet的基本用法
  8. redis进阶持久化、事务、主从复制、集群高可用
  9. Android通讯录管理(获取联系人 通话记录 短信消息)(三)
  10. 计算机考证大几考比较合适