Skip to main content
高级功能为开发者提供了扩展 WuKongIM HarmonyOS SDK 的能力,包括自定义消息类型、消息扩展、消息回执等企业级功能。
在 WuKongIM 中所有的消息类型都是自定义消息

自定义消息

自定义普通消息

下面我们以名片消息举例。

第一步:定义消息

定义消息对象并继承 WKMessageContent 并在构造方法中指定消息类型。

第二步:编码和解码

我们需要将 uid、name、avatar 三个字段信息发送给对方,最终传递的消息内容为:
重写 WKMessageContentencodeJsondecodeJson 方法开始编码解码:
解码和编码消息时无需将 type 字段考虑其中,SDK 内部会自动处理

第三步:注册消息

完整名片消息实现

自定义附件消息

我们在发送消息的时候有时需发送带附件的消息。WuKongIM 也提供自定义附件消息,自定义附件消息和普通消息区别不大。下面我们以地理位置消息举例。

第一步:定义消息

值得注意的是自定义附件消息需继承 WKMediaMessageContent 而不是 WKMessageContent
WKMediaMessageContent 提供了 urllocalPath 字段,自定义消息无需再定义网络地址和本地地址字段

第二步:编码和解码

我们需要将 longitudelatitudeaddressurl 信息发送给对方,最终传递的消息内容为:
重写 WKMessageContentencodeJsondecodeJson 方法开始编码解码:

第三步:注册消息

完整位置消息实现

消息扩展

随着业务的发展应用在聊天中的功能也日益增多,为了满足绝大部分的需求 WuKongIM 中增加了消息扩展功能。消息扩展分 本地扩展远程扩展,本地扩展只针对 app 本地使用卸载 app 后将丢失,远程扩展是服务器保存卸载重装后数据将恢复。

本地扩展

本地扩展就是消息对象 WKMsg 中的 localExtraMap 字段。
更新成功后 SDK 会触发刷新消息回调

远程扩展

远程扩展就是消息对象 WKMsg 中的 remoteExtra 字段。
更新成功后 SDK 会触发刷新消息回调

消息扩展管理示例

WKMsgExtra 数据结构说明

消息已读未读

消息的已读未读又称消息回执。消息回执功能可通过 setting 进行设置。
当登录用户浏览过对方发送的消息时,如果对方开启了消息回执这时需将查看过的消息上传到服务器标记该消息已读。当对方或者自己上传过已读消息这时业务服务器会下发同步消息扩展的 cmd(命令)消息 syncMessageExtra,此时需同步最新消息扩展保存到 SDK 中。

消息回执管理示例

消息编辑

当我们给对方发送消息发现发送内容有错误时,这时无需撤回重发只需要将消息编辑即可。

设置编辑内容

更改 SDK 消息编辑内容后需将编辑后的内容上传到服务器,则需要监听上传消息扩展。

消息编辑管理示例

消息回复

在聊天中如果消息过多,发送消息回复就会显得消息很乱无章可循。这时就需要对某条消息进行特定的回复,即消息回复。 在发送消息时,只需将消息正文 WKMessageContent 中的 WKReply 对象赋值就能达到消息回复效果。

WKReply 回复消息结构说明

消息回应(点赞)

保存

同一个用户对同一条消息只能做出一条回应。重复进行消息不同 emoji 的回应会做为修改回应,重复进行相同 emoji 的回应则做为删除回应
SDK 更新消息回应后会触发消息刷新的事件。app 需监听此事件并对 UI 进行刷新。 监听消息回应刷新:

获取

WKMsgReaction 数据结构说明

下一步

数据源配置

回到数据源配置

消息管理

回到消息收发功能

频道管理

回到频道管理功能

基础功能

回到基础功能

总结

HarmonyOS SDK 现已完成所有核心功能文档: 集成指南 - 完整的安装和配置指导
基础功能 - 连接管理和基础API
消息管理 - 消息收发和历史消息
频道管理 - 频道信息和成员管理
会话管理 - 会话列表和未读消息
数据源配置 - 文件上传和数据同步
高级功能 - 自定义消息和扩展特性
HarmonyOS SDK 文档已全面完成,为开发者提供了从入门到高级的完整技术指导!🎉