官网:http://www.rongcloud.cn/

一、爬坑之旅

1.连接融云的问题

连接融云走onTokenIncorrect()方法,并没有走成功方法,说是融云的token过期了,然后融云在监听的时候又报网络没有连接(其实已经链接,这是他们的bug)

2.修改用户头像为图形

http://www.xdowns.com/article/170/Article_4680.html

其中rc_item_message.xml中需要修改的是id为rc_left和rc_right

#显示用户头像

说一下融云sdk中kit里边会话列表界面和会话界面的头像显示机制:

头像和昵称信息从哪里来的?即头像和昵称的源数据是谁提供的?头像和昵称的源数据是你们app提供的;

那么这些源数据,通过什么接口来提供给融云的sdk呢?

通过

RongIM.setUserInfoProvider(
                newRongIM.UserInfoProvider(){
                @Override
                Public UserInfo getUserInfo(String s){
                //根据参数s(用户的id),从你本地数据库或者appserver获取这个用户的userinfo,然后return
                    }
                },true);

来提供用户信息给SDK,在getUserInfo()中通过用户的id“s”来提供用户的信息;
在getUserInfo()中提供用户信息时需要注意区分:你使用的是同步获取用户信息还是异步获取用户信息.

如果你能够同步提供用户信息,那么直接return new UserInfo()就可以:

@Override
                Public UserInfo getUserInfo(String s){
                Return new UserInfo();
                }

如果是异步获取用户信息,那么在拿到异步返回的结果时,直接refreshUserInfoCache(),然后在getUserInfo中return null:

 @Override
                Public UserInfo getUserInfo(Strings){
                    //根据你异步获取的UserInfo来刷新SDK的用户信息,调用refreshUserInfoCache来实现;
                Return null;
                }

这个接口只需要在你app初始化的时候调用一次;

sdk需要你做的就是这些,剩下的都是sdk 在kit中自己处理,即SDK需要用到头像和昵称的时候,它自己会通过你在getUserInfo中提供的用户信息来进行显示;

getUserInfo()方法什么时候调用?

getUserinfo()只有在第一次加载头像的时候才会走这个方法,比如说,你第一次安装app,进入到了会话列表界面,这个时候需要用到某个用户的头像和昵称,那么这个时候sdk就会去调用getUserinfo来获取这个用户的用户信息;

获取到这个用户信息之后,sdk会对这个用户信息进行缓存,之后再去获取改用户信息的时候,直接从缓存中去取,不会再调用getUserinfo();

如果你更新了这个用户的用户信息,那么你需要调用refreshUserinfoCache()来刷新该用户的用户信息缓存;

3.会话列表显示用户头像

http://www.rongcloud.cn/docs/android_video_tutorials.html#(显示用户昵称和头像)

http://blog.csdn.net/zwl5670/article/details/52371496 (显示用户头像的2种方式)


0 条评论

发表回复

您的电子邮箱地址不会被公开。