目录
一、爬坑之旅
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 条评论