IM 即时通讯 (438)
Android (207)
- 初始化&链接 (8)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (15)
- 聊天会话 (26)
- 消息处理 (35)
- 自定义消息 (6)
- 音视频 (2)
- 推送&通知 (33)
- 扩展功能 (4)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (3)
- 其他 (43)
iOS (166)
- SDK 导入 (8)
- 连接 (8)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (44)
- 消息处理 (25)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (5)
- 国际化 (3)
- 音视频 (4)
- 其他 (23)
Web (36)
Server (29)
用户信息(头像)如何刷新?
为什么调用 refreshUserInfoCache,有的头像刷新了,有的没有。
发布时间: 2016-01-26 14:51
回答:
融云有两种显示用户信息的方式,一种是给需要注册的 app 使用的,就是 setUserInfoProvider,所有用户信息都是通过 getUserInfo 的回调来传入。因为 app 使用是需要注册的,所以所有用户信息应该都保存在 app 自己的服务器,只需要写成:
RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
@Override
public UserInfo getUserInfo(String userId) {
return getUserInfoFromServer(userId);
}
}, true);
同步方法这里返回 UserInfo 就可以了。如果是网络异步请求,需要在异步回调里用 refreshUserInfoCache 刷新。
第二种是给不需要注册的app使用,就是 setCurrentUserInfo 以及 setMessageAttachedUserInfo(true) 这种方式。本端发送的消息里携带了自己的用户信息,对方收到后优先使用消息里携带的这一信息。可以在陌生人之间实现用户信息传递,比如公共聊天室。
需要注意的是,第二种优先级比第一种高,就是说如果这条消息里携带了用户信息,再对这个 id 做刷新操作,这条消息显示的用户信息不会改变。因此不建议混用,有特殊需求除外。