关于如何定义和发送自定义消息请参考官网文档: 融云开发者文档
自定义消息常见问题:
1. 收到自定义消息展示 “当前版本暂不支持查看此消息” 。可能原因如下:
- 未注册消息。可以调用以下接口注册消息
RongIMClient.registerMessageType
/**
* 用于自定义消息的注册, 注册后方能正确识别自定义消息, 建议在init后及时注册,保证自定义消息到达时能正确解析。
*
* @param messageContentClass 消息类型,必须要继承自 {@link io.rong.imlib.model.MessageContent}。
* @throws AnnotationNotFoundException 如果没有找到注解时抛出。
*/
public static void registerMessageType(Class<? extends MessageContent> messageContentClass)
- 未注册消息模板。可以调用以下接口注册展示消息模板
/**
* 注册消息模板。
*
* @param provider 模板类型。
*/
RongConfigCenter.conversationConfig().addMessageProvider(new CustomMessageProvider());
- 消息本身解析不正确。
可以在 ipc 进程跟踪消息发送及解析过程。
发送时编码的方法为 ecode:
/**
* 将本地消息对象序列化为消息数据。
*
* @return 消息数据。
*/
@Override
public byte[] encode() {
接收时解码的方法为对应的构造函数:
public MyMessage(byte[] data) {
- 消息序列化错误
须在 ipc 进程跟踪消息的序列化过程。注意序列化中的 Parcel 的读写个数和顺序一定要一一对应。
2. 自定义消息收不到推送。
调用 sendMessage 发送消息时,须设置 pushContent 参数。