头像(Avatar)

头像:Avatar 是 IDL 定义的跨端 UI 组件,props / events / behaviors 在各平台语义一致。本页给出契约属性、事件、渲染行为、数据源与 Native (C ABI) 端绑定/示例。

契约属性(props)​

属性类型必填说明
userIdstring是用户 ID(用于生成首字与稳定背景色)
namestring否显示名称(可选,缺省取 userId)
urlstring否头像 URL(加载失败回退首字)
sizeint否头像尺寸(像素)

事件​

该组件未声明事件;交互通过属性和宿主回调完成。

渲染行为​

  • url 缺失或加载失败时显示姓名首字/末字,背景色由 userId 哈希稳定生成

数据源​

未在 IDL 声明 dataSource;由宿主从 IMLib 拉取(getConversationList / getHistoryMessages / MESSAGES / CONVERSATION 事件)。

依赖边界

组件不直连网络与数据库:会话/消息由宿主从 IMLib 拉取后传入,组件只做排序、角标、格式化与渲染。

平台绑定​

项值
公开符号 / 签名im_kit_avatar_initials(const char* user_id, const char* name, char* out, size_t out_len) / im_kit_avatar_color(const char* user_id) -> uint32_t
导出列表包含—
UI 框架view-model / 格式化 / 角标 / 状态计算层(不访问网络,不渲染 UI)

使用示例​

C(view-model 层)
char initials[8];
im_kit_avatar_initials("user2", "Bob", initials, sizeof(initials)); /* "B" */

uint32_t color = im_kit_avatar_color("user2"); /* 0xAARRGGBB,稳定哈希 */

char* avatar_json = NULL;
im_kit_avatar_descriptor("user2", "Bob", "https://cdn.example.com/avatar/bob.png", 44, &avatar_json);
im_kit_string_free(avatar_json);

相关文档​