实现九宫格群头像
更新时间: 2024/03/07 13:30:13
群组头像支持展示九宫格头像。九宫格头像是通过群成员的头像合成的,如果九宫格合成失败或群组中只有一个成员,则会展示默认的群组头像(icon
)。
若您需要是实现九宫格群头像,需要在服务端和客户端进行处理。
服务端
-
在服务端接入 IM 的抄送功能,并监听高级群中涉及群成员变更的相关事件。这里以创建高级群的抄送为例,更多高级群相关抄送给示例请参考高级群相关示例。
创建高级群的抄送示例:
{ "fromNick":"yx-tom-123test", "msgType":"NOTIFICATION", "msgidServer":"15759307314718****", "fromAccount":"yx", "fromClientType":"AOS", "tMembers":"[yx]", "eventType":"1", "convType":"TEAM", "msgidClient":"5740dc99-a45d-46ac-****-0757111d1020", "resendFlag":"0", "msgTimestamp":"1656572965158", "to":"2348319786", "attach":"{\"data\":{\"uinfos\":[{\"11\":\"84851\",\"1\":\"yx1\",\"12\":\"1431056915229\",\"2\":\"11011\",\"13\":\"1641801035679\",\"3\":\"yx1\",\"4\":\"https://nim.nosdn.127.net/xxx\",\"5\":\"签名-xw\",\"6\":\"0\",\"7\":\"e@3721.net\",\"8\":\"1984-4-7\",\"10\":\"ext\"}],\"tinfo\":{\"11\":\"1656572965051\",\"22\":\"1\",\"12\":\"1656572965051\",\"23\":\"1\",\"24\":\"1\",\"14\":\"yx-15:09:24.942\",\"16\":\"0\",\"17\":\"0\",\"1\":\"2348319786\",\"2\":\"11011\",\"3\":\"yx-2022-06-30\",\"4\":\"1\",\"5\":\"yx\",\"6\":\"3000\",\"8\":\"1\",\"9\":\"5\",\"20\":\"http://b12026.nos.netease.com/xxx\",\"10\":\"1656572965051\",\"21\":\"1\"},\"ids\":[\"yx1\",\"wmtest200\",\"wmtest201\",\"wmtest202\"]},\"id\":0}" }
attach
中的字段释义请参考相关字段释义。 -
根据您自身的业务逻辑,在创建高级群、高级群接受邀请入群、高级群踢人出群、高级群申请加入成功(无需加群验证)、允许加群申请、退出高级群等群成员发生变化的事件中按需生成群头像。
-
调用修改群组信息接口更新群组头像。
请求示例:
curl -X POST -H "AppKey: go9dnk***03mgq3" -H "Nonce: 4tgggerg**23t23t" -H "CurTime: 1443592222" -H "CheckSum: 9e9db3b6c9a***16fcc55583f86" -H "Content-Type: application/x-www-form-urlencoded" -d 'tid=xx&icon=xx&owner=xx' 'https://api.netease.im/nimserver/team/update.action'
客户端
客户端只需注册监听群组信息变更的事件(onTeamListUpdate
)即可。
示例代码:
NimCore.instance.teamService.onTeamListUpdate.listen((event) {
//更新对应的群头像信息
});
由于获取群组信息需要跨进程异步调用,您最好能在第三方 APP 中做好群组信息缓存,查询群组信息时都从本地缓存中访问。在群组信息有变化时,SDK 会告诉注册的观察者,此时,第三方 APP 可更新缓存,并刷新界面。
此文档是否对你有帮助?