自定义消息常见问题

关于如何定义和发送自定义消息请参考官网文档: 融云开发者文档

自定义消息常见问题:

1. 收到自定义消息展示 “当前版本暂不支持查看此消息” 。可能原因如下:

  1. 未注册消息。可以调用以下接口注册消息

RongIMClient.registerMessageType

/**
 * 用于自定义消息的注册, 注册后方能正确识别自定义消息, 建议在init后及时注册,保证自定义消息到达时能正确解析。
 *
 * @param messageContentClass 消息类型,必须要继承自 {@link io.rong.imlib.model.MessageContent}。
 * @throws AnnotationNotFoundException 如果没有找到注解时抛出。
 */
public static void registerMessageType(Class<? extends MessageContent> messageContentClass)
  1. 未注册消息模板。可以调用以下接口注册展示消息模板
/**
 * 注册消息模板。
 *
 * @param provider 模板类型。
 */
 RongConfigCenter.conversationConfig().addMessageProvider(new CustomMessageProvider());
  1. 消息本身解析不正确。

可以在 ipc 进程跟踪消息发送及解析过程。

发送时编码的方法为 ecode:

/**
 * 将本地消息对象序列化为消息数据。
 *
 * @return 消息数据。
 */
@Override
public byte[] encode() {

接收时解码的方法为对应的构造函数:

public MyMessage(byte[] data) {
  1. 消息序列化错误

须在 ipc 进程跟踪消息的序列化过程。注意序列化中的 Parcel 的读写个数和顺序一定要一一对应。

2. 自定义消息收不到推送。

调用 sendMessage 发送消息时,须设置 pushContent 参数。