注册即时通讯云 注册客服云
环信即时通讯 IM SDK(iOS)消息类型与发送示例

环信即时通讯 IM SDK(iOS)消息类型与发送示例


说明:以下通讯内容仅在业务代码调用对应发送接口时才会产生并上传至服务端;未调用相应 API 时不会触发对应类型的消息传输。

适用:iOS 平台,Objective‑C API 以环信 Chat SDK 为准。

1. 文本消息

  • 用于传输文字内容。

EMTextMessageBody *textBody = [[EMTextMessageBody alloc] initWithText:@"这是一条文字消息"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:textBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

2. 图片消息

  • 用于传输图片。

EMImageMessageBody *imgBody = [[EMImageMessageBody alloc] initWithLocalPath:@"/path/pic.jpg" displayName:@"pic.jpg"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:imgBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

3. 语音消息

  • 用于传输语音文件。

EMVoiceMessageBody *voiceBody = [[EMVoiceMessageBody alloc] initWithLocalPath:@"/path/a.aac" displayName:@"voice.aac"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:voiceBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

4. 视频消息

  • 用于传输视频。

EMVideoMessageBody *videoBody = [[EMVideoMessageBody alloc] initWithLocalPath:@"/path/m.mp4" displayName:@"m.mp4"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:videoBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

5. 文件消息

  • 用于传输任意文件。

EMFileMessageBody *fileBody = [[EMFileMessageBody alloc] initWithLocalPath:@"/path/f.pdf" displayName:@"f.pdf"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:fileBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

6. 位置消息

  • 用于传输地理位置。

EMLocationMessageBody *locBody = [[EMLocationMessageBody alloc] initWithLatitude:39.9042 longitude:116.4074 address:@"北京市东城区"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:locBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

7. 透传 / 命令消息(CMD)

  • 用于指令类消息(是否入库等行为以 SDK 版本说明为准)。

EMCmdMessageBody *cmdBody = [[EMCmdMessageBody alloc] initWithAction:@"action"];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:cmdBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

8. 自定义消息(CUSTOM)

  • 用于业务自定义事件与扩展字段。

EMCustomMessageBody *customBody = [[EMCustomMessageBody alloc] initWithEvent:@"userCard"
                                                                              customExt:@{@"uid": @"10001",
                                                                                    @"nickname": @"环信用户",
                                                                                    @"avatar": @"https://example.com/avatar.png"}];
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:to body:customBody ext:nil];
message.chatType = EMChatTypeChat;
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:nil];

9. 合并转发消息(COMBINE)

  • 用于合并转发多条历史消息;messageIdList 为被合并消息 ID 列表。

EMCombineMessageBody *combineMsgBody = [[EMCombineMessageBody alloc] initWithTitle:@"聊天记录"
                                                                           summary:@"A: 这是A的消息内容
B: 这是B的消息内容"
                                                                    compatibleText:@"您当前的版本不支持该消息,请升级到最新版本"
                                                                      messageIdList:@[@"messageId1", @"messageId2"]];
EMChatMessage *msg = [[EMChatMessage alloc] initWithConversationID:to body:combineMsgBody ext:nil];
[[EMClient sharedClient].chatManager sendMessage:msg progress:nil completion:nil];

类型与消息体对照(iOS)

消息类型消息体类型(示例)
文本EMTextMessageBody
图片EMImageMessageBody
语音EMVoiceMessageBody
视频EMVideoMessageBody
文件EMFileMessageBody
位置EMLocationMessageBody
命令EMCmdMessageBody
自定义EMCustomMessageBody
合并转发EMCombineMessageBody

申请试用

提交后工作人员会尽快与您联系进行功能演示
技术咨询已转移到管理后台,请先登录

即时通讯云使用者请在应用详情页面咨询
客服云使用者请进入管理员模式咨询

×

电话咨询

注册客服

注册IM

环信即时通讯云——100注册用户永久免费
环信MQTT——免费开通 每月赠送额度
环信PUSH——1000个DAU免费

注册享福利、赢好礼

立即体验