收发消息
本文介绍了如何从客户端发送超级群消息。超级群收发消息需要使用 RCCoreClient
下的方法。
前置条件
建议先阅读超级群概述和超级群私有频道概述,了解在 App 业务中如何使用频道和超级群频道功能特性。
- 通过服务端 API 创建超级群
- 通过服务端 API 创建频道,或使用默认频道 ID
RCDefault
- 通过服务端 API 将发件人加入超级群
- 如不确定发件人是否在超级群中,请通过服务端 API 查询用户是否为群成员
- 如向超级群私有频道中发送消息,请确认已通过服务端 API 添加私有频道成员
提示
当前频道聊天页面发送与接收消息,需要同时检查超级群 ID 和频道 ID。如果超级群 ID 和频道 ID 和当前频道聊天页面对应,才能在当前频道页面进行展示处理,否则就不处理。如果消息出现在其他聊天页面,一般是因为超级群 ID 或者频道 ID 发生错误。
构造消息对象
在发送消息前,需要构造 RCMessage 对象。消息的 conversationType
字段必须填写超级群业务的会话类型 ConversationType_ULTRAGROUP
。消息的 targetId
字段表示超级群 ID,channelId
表示超级群频道 ID。
RCMessage
对象中可包含普通消息内容或媒体消息内容。普通消息内容指 RCMessageContent
的子类,例如文本消息(RCTextMessage)。
RCTextMessage *messageContent = [RCTextMessage messageWithContent:@"测试超级群消息"];
RCMessage *message = [[RCMessage alloc] initWithType:ConversationType_ULTRAGROUP targetId:@"超级群 id" channelId:@"频道 id" direction:MessageDirection_SEND content:messageContent];
媒体消息内容指 RCMediaMessageContent
的子类,例如图片消息(RCImageMessage)、GIF 消息(RCGIFMessage)等。
RCImageMessage *mediaMessageContent = [RCImageMessage messageWithImageURI:@"path/to/image"];
mediaMessageContent.full YES; // 图片消息支持设置以原图发送
RCMessage *message = [[RCMessage alloc] initWithType:ConversationType_ULTRAGROUP targetId:@"超级群 id" channelId:@"频道 id" direction:MessageDirection_SEND content:mediaMessageContent];