在这里我只说下自己开发遇到坑,其他的按照文档和demo来就可以了;
1.首先如果你们的项目不需要google推送的话需要去掉google推送的初始化,不然APP会闪退;
由于我公司的项目启动完APP后不是初始进入会话列表,所以我初始先获取了自己加入的群和好友列表数据(这里看公司产品的需求是否要先获取了,如果不先获取,用户操作没有点击到你获取这些数据的页面,APP切换到后台时,别人给你发消息,消息推送就不好取值进行通知显示了);
因为腾讯云IM是项目后期嵌入的,所以我们需要对每个账号的属性进行赋值(例如:性别,昵称,头像URL,还有一些自定义属性,如:等级),或者让后台把所有数据都导入到腾讯云中;注意在项目修改这些属性时需要同步调用IM相对应的方法来改变。
2.接下来就是要搜索好友了,IM的demo支持昵称和ID搜索,但是实际上对外只支持ID搜索(群搜索也是只支持ID搜索,文档没写昵称搜索不可用,最后问客服才知道的。),所以我们就用了自己的后台搜索。
3.在添加好友后,腾讯云默认是不需要验证的,如果设置了需要验证,这时被添加的用户就会收到一个未决的好友申请,如果用户拒绝了,在好友未决列表就不会显示这条数据(好友未决列表只有未决和同意的,拒绝的不会显示),相应的,群未决列表如果拒绝了是会显示的,但是没有已拒绝状态,而且这个群未决列表的返回值里面只返回了请求和被请求的ID,项目的UI基本是包含头像,昵称,个性签名。昵称和头像这些都没有返回,需要自己再发获取用户信息的方法去获取,好多地方都是这样只返回ID,UI怎么显示啊,所有你写的时候就好发现少了N多东西,然后发各种请求去获取才能让你的UI显示完全,这些地方是有这些属性的,但是全部都是空的,不知道设计为什么要这样搞,只有一个ID,界面都没法写),
4.会话列表数据:由于陌生人也可以进行会话,所以这个列表里面就包含了好友和陌生人的消息在这里面,列表进行显示时,好友可以通过自己的存的好友列表里面取,但是陌生人呢?只能发获取用户信息的方法去请求了,这个方法是耗时的,直接在这里用会导致图片错乱和闪动,我就直接把陌生人单独取出来进行合并在另外一个界面进行统一显示了;
说到会话,就会有未读消息提醒,onNewMessages这个文档的说明是新消息的监听,但是如果有好友未决,你每次退出登入它同样会触发,而且在这里调用获取会话的未读数getUnreadMessageNum的值也是错的,最后我用判断是否已读来过滤掉这些错误值(经过反复测试,暂时没发现什么问题)。
5.创建完公开群后,群主和群成员是不能主动邀请别人进群的,就是说公开群只能通过用户自己搜索然后申请进群(文档没写清楚),私有群的话可以邀请别人进群,但是被邀请的用户不需要同意就直接进群了,如果你门只创建私有群的话,就没有群未决功能了;
6.总结,获取数据太麻烦,需要频繁调用获取用户信息的方法,使用起来很麻烦,几个正常需要用到的功能也没有。
就这样的简单UI,拿数据会要几步才能获取全。(只有好友
列表返回全了,其他地方需要发TIMFriendshipManager.getInstance().getUsersProfile//获取用户资料)
第一次写文章,写的不好,希望大家见谅,有不理解或者开发上遇到了什么问题的可以留言。