发送超级群定向消息
您可以给超级群频道中的指定的一个或多个成员发送普通消息与媒体消息,其他成员不会收到该消息。
提示
- 5.6.9 版本开始支持该能力。
- 单条定向消息的接收用户上限 300 个用户。
- 如果定向消息为 @ 消息,不支持 @所有人。
发送定向普通消息
您可以使用 sendDirectionalMessage:toUserIdList:pushContent:pushData:attached:successBlock:errorBlock: 在超级群中发送普通消息给指定频道中的指定用户。不在接收列表的用户不会收到这条消息。
请在消息对象中设置超级群会话类型、超级群 targetId 和 频道 channelId。频道 channelId 为空时默认向 RCDefault
频道发送消息。注意,RCMessage
中不会保存接收用户的 userId 列表。
接口原型
Objective C
- (void)sendDirectionalMessage:(RCMessage *)message
toUserIdList:(NSArray<NSString *> *)userIdList
pushContent:(nullable NSString *)pushContent
pushData:(nullable NSString *)pushData
attached:(nullable void(^)(RCMessage *_Nullable message))attachedBlock
successBlock:(nullable void (^)(RCMessage *successMessage))successBlock
errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock;
参数说明
参数 | 类型 | 说明 |
---|---|---|
message | RCMessage | 要发送的消息体。必填属性包括会话类型(conversationType ),频道 ID(channelId ),会话 ID(targetId ),消息内容(content )。 |
userIdList | NSArray | 将要发送的用户列表 |
pushContent | NSString | 修改或指定远程消息推送通知栏显示的内容。您也可以在 RCMessage 的推送属性(RCMessagePushConfig)中配置,会覆盖此处配置,详见配置消息的推送属性。
|
pushData | String | 远程推送附加信息。您也可以在 RCMessage 的推送属性(RCMessagePushConfig)中配置,会覆盖此处配置,详见配置消息的推送属性。 |
attachedBlock | Block | 消息插入数据库成功的回调 |
successBlock | Block | 发送消息成功的回调 |
errorBlock | Block | 发送消息失败的回调,其中包含错误码 RCErrorCode 和发送失败的消息。 |
示例代码
Objective C
RCTextMessage *text = [RCTextMessage messageWithContent:@"你好"];
RCMessage *message = [[RCMessage alloc] initWithType:ConversationType_ULTRAGROUP targetId:@"Group1" direction:MessageDirection_SEND messageId:-1 content:text];
[[RCCoreClient sharedCoreClient] sendDirectionalMessage:message
toUserIdList:@[@"user1",@"user2"]
pushContent:nil
pushData:nil
attached:^(RCMessage * _Nullable message) {
}successBlock:^(RCMessage *successMessage) {
} errorBlock:^(RCErrorCode nErrorCode, RCMessage *errorMessage) {
}];
发送定向媒体消息
您可以使用 sendDirectionalMediaMessage:toUserIdList:pushContent:pushData:attached:progress:successBlock:errorBlock:cancel: 在超级群中发送普通消息给指定频道中的指定用户。不在接收列表的用户不会收到这条消息。
请在消息对象中设置超级群会话类型、超级群 targetId 和 频道 channelId。频道 channelId 为空时默认向 RCDefault
频道发送消息。注意,RCMessage
中不会保存接收用户的 userId 列表。
接口原型
Objective C
- (void)sendDirectionalMediaMessage:(RCMessage *)message
toUserIdList:(NSArray<NSString *> *)userIdList
pushContent:(nullable NSString *)pushContent
pushData:(nullable NSString *)pushData
attached:(nullable void(^)(RCMessage *_Nullable message))attachedBlock
progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock
successBlock:(nullable void (^)(RCMessage *successMessage))successBlock
errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock
cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock;
参数说明
参数 | 类型 | 说明 |
---|---|---|
message | RCMessage | 要发送的消息体。必填属性包括会话类型(conversationType ),频道 ID(channelId ),会话 ID(targetId ),消息内容(content )。 |
userIdList | NSArray | 将要发送的用户列表 |
pushContent | NSString | 修改或指定远程消息推送通知栏显示的内容。您也可以在 RCMessage 的推送属性(RCMessagePushConfig)中配置,会覆盖此处配置,详见配置消息的推送属性。
|
pushData | String | 远程推送附加信息。您也可以在 RCMessage 的推送属性(RCMessagePushConfig)中配置,会覆盖此处配置,详见配置消息的推送属性。 |
attachedBlock | Block | 消息插入数据库成功的回调 |
progress | Block | 发送消息进度更新的回调 |
successBlock | Block | 发送消息成功的回调 |
errorBlock | Block | 发送消息失败的回调,其中包含错误码 RCErrorCode 和发送失败的消息。 |
cancel | Block | 用户取消消息发送的回调 |
示例代码
Objective C
RCImageMessage *imageMessage = [RCImageMessage messageWithImageURI:@"https://test.png"];
RCMessage *message = [[RCMessage alloc] initWithType:ConversationType_ULTRAGROUP targetId:@"Group1" direction:MessageDirection_SEND messageId:-1 content:imageMessage];
[[RCCoreClient sharedCoreClient] sendDirectionalMediaMessage:message toUserIdList:@[@"user1",@"user2"] pushContent:nil pushData:nil attached:^(RCMessage * _Nullable message) {
}progress:^(int progress, RCMessage * _Nonnull progressMessage) {
// 多媒体上传进度回调
} successBlock:^(RCMessage * _Nonnull successMessage) {
// 发送成功
} errorBlock:^(RCErrorCode nErrorCode, RCMessage * _Nonnull errorMessage) {
// 发送失败
} cancel:^(RCMessage * _Nonnull cancelMessage) {
// 用户取消发送
}];