贴纸消息

贴纸消息:IMKit 以组件 + 数据源/回调的方式提供 UI 能力;本页聚焦该功能在组件层的接入点与配置。

适用场景​

  • 需要在现成会话页/会话列表上扩展功能
  • 需要确认功能对应的组件与 props/events

前置条件​

  • 已导入 ImpIaaSIMKit
  • 已完成 IMLib 初始化与连接
  • 宿主容器可挂载 UIView

rev28 契约状态​

已实现 / 部分覆盖

rev28 已冻结 IMKit features 8 组件与 Swift/ObjC 绑定;本页覆盖信息托管/群管理/联系人/多选/转发/引用的契约接入,未覆盖的特别关注/搜索用户等仍按能力边界说明。

组件:EmojiPanel​

表情/贴纸面板:内置表情与贴纸包,选择后写入输入框或发送贴纸自定义消息

契约项内容
Propsemojis:[IMPEmoji] stickers:[IMPSticker] onSelect:(IMPEmoji|IMPSticker)
EventsemojiSelected stickerSelected
Behaviors点击表情追加到输入文本;点击贴纸发送 custom 内容(stickerId/url);面板高度自适应,深浅主题

真实签名(bindings.ios.imkit.features)​

语言签名
SwiftIMPEmojiPanel(emojis: [IMPEmoji], stickers: [IMPSticker])
Objective-C- (instancetype)initWithEmojis:(NSArray<IMPOSEmoji *> *)emojis stickers:(NSArray<IMPOSSticker *> *)stickers;

Swift 接入示例​

Swift
// ios-imkit/uikit/features/sticker-message
let stickerCellModel = IMPChatCellModel(message: message, showTime: true, showAvatar: true, readCount: nil, sendState: .sent)
print(stickerCellModel)

Objective-C 接入示例​

Objective-C
IMPOSEmojiPanel *emojiPanel = [[IMPOSEmojiPanel alloc] initWithEmojis:@[] stickers:@[]];

注入方式与回退策略​

  • EmojiPanel(emojis:stickers:) 只负责面板展示与选择回调;贴纸 custom 内容由宿主以 content.type=custom 发送。
  • 选择事件回传 emoji/sticker 标识,宿主拼接到输入框或发送自定义消息。
  • 面板高度/主题由宿主容器控制,不直连网络。

与融云对应页 / 差异​

项内容
融云页面ios-im-uikit/features/sticker-message(贴纸消息)
融云接口状态能力缺失(写边界页)
我方对应无直接 op(见差异说明)
差异说明贴纸消息(StickerMessage + 贴纸包管理)
能力缺口(如实标注)

融云该页描述的能力未完全在 IMLib 102 op / 16 事件中覆盖:贴纸消息(StickerMessage + 贴纸包管理)。本页不提供伪造接口。

相关错误码​

错误码名称含义处理
1001INVALID_PARAMETER参数错误修正参数/权限后重试
1002INVALID_TOKENToken 无效或已过期修正参数/权限后重试
1007MESSAGE_TOO_LARGE消息体过大(上限 5KB)修正参数/权限后重试
1009GROUP_MUTED你已被禁言修正参数/权限后重试
1010SENSITIVE_WORD内容包含敏感词修正参数/权限后重试
3001SDK_NOT_CONNECTED长连接未就绪可重试(退避)
3002SDK_TIMEOUT请求超时可重试(退避)
3003SDK_NETWORK_ERROR网络错误可重试(退避)

相关页面​