IM 即时通讯 (423)
Android (197)
- 初始化&链接 (7)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (14)
- 聊天会话 (25)
- 消息处理 (35)
- 自定义消息 (5)
- 音视频 (2)
- 推送&通知 (31)
- 扩展功能 (3)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (4)
- 其他 (39)
iOS (165)
- SDK 导入 (7)
- 连接 (7)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (43)
- 消息处理 (26)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (7)
- 国际化 (3)
- 音视频 (4)
- 其他 (22)
Web (36)
Server API (25)
用户信息(头像)如何刷新?
为什么调用 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 做刷新操作,这条消息显示的用户信息不会改变。因此不建议混用,有特殊需求除外。