更新时间: 2020-11-12
# 发送普通消息
# 通过消息体发送
接口原型:
- (RCMessage *)sendMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData option:(RCSendMessageOption *)option success:(void (^)(long messageId))successBlock error:(void (^)(RCErrorCode nErrorCode, long messageId))errorBlock;
已复制
2
3
4
5
6
7
8
参数说明
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationType | RCConversationType | 是 | 会话类型,单聊传入 ConversationType_PRIVATE |
targetId | NSString | 是 | 接收方的 userId |
content | RCMessageContent | 是 | 消息的内容 |
pushContent | NSString | 否 | 接收方离线时需要显示的远程推送内容 |
pushData | NSString | 否 | 接收方离线时需要在远程推送中携带的非显示数据 |
option | RCSendMessageOption | 否 | 消息的相关配置 |
success | Block | - | 消息发送成功的回调 |
error | Block | - | 消息发送失败的回调 |
返回参数说明
返回值 | 返回类型 | 说明 |
---|---|---|
textMsg | RCMessage (opens new window) | 发送的消息实体 |
回调参数说明
success 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
messageId | long | 消息的ID |
error 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
nErrorCode | RCErrorCode | 发送失败的错误码 |
messageId | long | 消息的ID |
# 通过消息发送
4.0.1 版本之后 SDK 新增发送消息传参为 message 的接口,并增加是否发送推送的配置
4.0.4 版本开始支持单条消息推送配置功能
接口原型:
- (RCMessage *)sendMessage:(RCMessage *)message pushContent:(NSString *)pushContent pushData:(NSString *)pushData successBlock:(void (^)(RCMessage *successMessage))successBlock errorBlock:(void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock;
已复制
2
3
4
5
RCMessage 添加消息配置的对象
/*! 消息配置,可用来设置静默消息(不进行通知提醒) */ @property (nonatomic, strong) RCMessageConfig *messageConfig; /*! 消息推送配置,详细查看 配置消息推送 */ @property (nonatomic, strong) RCMessagePushConfig *messagePushConfig;
已复制
2
3
4
5
6
7
8
9
10
RCMessagePushConfig 详细说明请查看 配置消息推送
参数说明
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
message | RCMessage | 是 | 消息对象 |
pushContent | NSString | 否 | 接收方离线时需要显示的远程推送内容 |
pushData | NSString | 否 | 接收方离线时需要在远程推送中携带的非显示数据 |
success | Block | - | 消息发送成功的回调 |
error | Block | - | 消息发送失败的回调 |
返回参数说明
返回值 | 返回类型 | 说明 |
---|---|---|
textMsg | RCMessage | 发送的消息实体 |
回调参数说明
success 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
successMessage | RCMessage | 消息实体 |
error 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
nErrorCode | RCErrorCode | 发送失败的错误码 |
errorMessage | RCMessage | 消息实体 |
代码示例:
RCMessage *message = [[RCMessage alloc] initWithType:conversationType targetId:targetId direction:MessageDirection_SEND messageId:0 content:messageContent]; message.messageConfig.disableNotification = disableNotification; // disableNotificatio 为 NO 或者 YES message.messagePushConfig = pushConfig; // pushConfig 为构建的 RCMessagePushConfig 对象 [[RCIMClient sharedRCIMClient] sendMessage:message pushContent:pushContent pushData:nil successBlock:nil errorBlock:nil];
已复制
2
3
4
注意 messageid 无特殊情况应传 0
# 文本消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCTextMessage | RCMessageContent | RC:TxtMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
content | NSString | 文本消息的内容 |
代码示例
RCTextMessage *textMessage = [RCTextMessage messageWithContent:@"消息内容"]; [[RCIMClient sharedRCIMClient] sendMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:textMessage pushContent:nil pushData:nil option:nil success:^(long messageId) { } error:^(RCErrorCode nErrorCode, long messageId) { }];
已复制
2
3
4
5
6
7
# Emoji 消息
iOS 端发送 Emoji 消息,开发者直接使用 文本消息 发送即可。如有特殊需求需要开发者自己 自定义消息 实现。
# 位置消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCLocationMessage | RCMessageContent | RC:LBSMsg | 存储 | 计数 | 存储 | 推送 | [位置] |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
image | UIImage | 地理位置的缩略图 |
location | CLLocationCoordinate2D | 地理位置的二维坐标 |
locationName | NSString | 地理位置的名称 |
代码示例
RCLocationMessage *locationMessage = [RCLocationMessage messageWithLocationImage:image location:location locationName:locationName]; [[RCIMClient sharedRCIMClient] sendMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:locationMessage pushContent:nil pushData:nil option:nil success:^(long messageId) { } error:^(RCErrorCode nErrorCode, long messageId) { }];
已复制
2
3
4
5
6
7
# 正在输入状态消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCTypingStatusMessage | RCMessageContent | RC:TypSts | 不存储 | 不计数 | 不存储 | 不推送 | 消息内容 |
属性说明
参数说明:
参数 | 类型 | 说明 |
---|---|---|
typingContentType | NSString | 输入类型,传消息的objectName ,比如正在输入文字,传"RC:TxtMsg" |
代码示例
RCTypingStatusMessage *typingMessage = [[RCTypingStatusMessage alloc] init]; typingMessage.typingContentType = objectName; [[RCIMClient sharedRCIMClient] sendMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:typingMessage pushContent:nil pushData:nil option:nil success:^(long messageId) { } error:^(RCErrorCode nErrorCode, long messageId) { }];
已复制
2
3
4
5
6
7
# 发送媒体消息
# 通过消息体发送
接口原型:
- (RCMessage *)sendMediaMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData progress:(void (^)(int progress, long messageId))progressBlock success:(void (^)(long messageId))successBlock error:(void (^)(RCErrorCode errorCode, long messageId))errorBlock cancel:(void (^)(long messageId))cancelBlock;
已复制
2
3
4
5
6
7
8
9
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationType | RCConversationType | 是 | 会话类型,单聊传入 ConversationType_PRIVATE |
targetId | NSString | 是 | 接收方的 userId |
content | RCMessageContent | 是 | 消息的内容要显示的远程推送内容 |
pushData | NSString | 否 | 接收方离线时需要在远程推送中携带的非显示数据 |
progress | Block | - | 消息发送进度更新的回调 |
success | Block | - | 消息发送成功的回调 |
error | Block | - | 消息发送失败的回调 |
cancel | Block | - | 用户取消了消息发送的回调 |
返回参数说明
返回值 | 返回类型 | 说明 |
---|---|---|
imgMsg | RCMessage (opens new window) | 发送的消息实体 |
回调参数说明
progress 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
progress | int | 当前的发送进度, 0 <= progress <= 100 |
messageId | long | 消息的ID |
success 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
messageId | long | 消息的ID |
error 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
nErrorCode | RCErrorCode | 发送失败的错误码 |
messageId | long | 消息的ID |
cancel 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
messageId | long | 消息的ID |
# 通过消息发送
4.0.1 版本之后 SDK 新增发送消息传参为 message 的接口,并增加是否发送推送的配置
4.0.4 版本开始支持单条消息推送配置功能
接口原型:
- (RCMessage *)sendMediaMessage:(RCMessage *)message pushContent:(NSString *)pushContent pushData:(NSString *)pushData progress:(void (^)(int progress, RCMessage *progressMessage))progressBlock successBlock:(void (^)(RCMessage *successMessage))successBlock errorBlock:(void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock cancel:(void (^)(RCMessage *cancelMessage))cancelBlock;
已复制
2
3
4
5
6
7
RCMessage 添加消息配置的对象
/*! 消息配置,可用来设置静默消息(不进行通知提醒) */ @property (nonatomic, strong) RCMessageConfig *messageConfig; /*! 消息推送配置,详细查看 配置消息推送 */ @property (nonatomic, strong) RCMessagePushConfig *messagePushConfig;
已复制
2
3
4
5
6
7
8
9
RCMessagePushConfig 详细说明请查看 配置消息推送
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
message | RCMessage | 是 | 消息实体 |
pushData | NSString | 否 | 接收方离线时需要在远程推送中携带的非显示数据 |
progress | Block | - | 消息发送进度更新的回调 |
success | Block | - | 消息发送成功的回调 |
error | Block | - | 消息发送失败的回调 |
cancel | Block | - | 用户取消了消息发送的回调 |
返回参数说明
返回值 | 返回类型 | 说明 |
---|---|---|
imgMsg | RCMessage (opens new window) | 发送的消息实体 |
回调参数说明
progress 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
progress | int | 当前的发送进度, 0 <= progress <= 100 |
progressMessage | RCMessage | 消息实体 |
success 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
successMessage | RCMessage | 消息实体 |
error 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
nErrorCode | RCErrorCode | 发送失败的错误码 |
errorMessage | RCMessage | 消息实体 |
cancel 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
cancelMessage | RCMessage | 消息实体 |
代码示例:
RCMessage *message = [[RCMessage alloc] initWithType:conversationType targetId:targetId direction:MessageDirection_SEND messageId:0 content:messageContent]; message.messageConfig.disableNotification = disableNotification; // disableNotificatio 为 NO 或者 YES message.messagePushConfig = pushConfig; // pushConfig 为构建的 RCMessagePushConfig 对象 [[RCIM sharedRCIM] sendMediaMessage:message pushContent:pushContent pushData:nil progress:nil successBlock:nil errorBlock:nil cancel:nil];
已复制
2
3
4
注意 messageid 无特殊情况应传 0
# 图片消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCImageMessage (opens new window) | RCMediaMessageContent | RC:ImgMsg | 存储 | 计数 | 存储 | 推送 | [图片] |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
imageData | NSData | 图片的原始数据 |
代码示例
RCImageMessage *message = [RCImageMessage messageWithImageData:data]; [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:message pushContent:nil pushData:nil progress:^(int progress, long messageId) { } success:^(long messageId) { } error:^(RCErrorCode errorCode, long messageId) { } cancel:^(long messageId) { }];
已复制
2
3
4
5
6
7
8
9
10
11
# 语音消息
SDK 从 2.9.19 版本开始支持发送 RCHQVoiceMessage
。
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCHQVoiceMessage | RCMediaMessageContent | RC:HQVCMsg | 存储 | 计数 | 存储 | 推送 | [语音] |
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
localPath | NSString | 语音的本地路径 |
duration | long | 语音消息的时长,单位为秒 |
示例代码
RCHQVoiceMessage *hqVoiceMsg = [RCHQVoiceMessage messageWithPath:path duration:duration]; [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:hqVoiceMsg pushContent:nil pushData:nil progress:^(int progress, long messageId) { } success:^(long messageId) { } error:^(RCErrorCode errorCode, long messageId) { } cancel:^(long messageId) { }];
已复制
2
3
4
5
6
7
8
9
10
11
# 文件消息
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCFileMessage | RCMediaMessageContent | RC:FileMsg | 存储 | 计数 | 存储 | 推送 | [文件] + 文件名,如:[文件] 123.txt |
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
localPath | NSString | 文件的本地路径 |
代码示例
RCFileMessage *fileMessage = [RCFileMessage messageWithFile:path] [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:fileMessage pushContent:nil pushData:nil progress:^(int progress, long messageId) { } success:^(long messageId) { } error:^(RCErrorCode errorCode, long messageId) { } cancel:^(long messageId) { }];
已复制
2
3
4
5
6
7
8
9
10
11
# 小视频消息
融云提供了小视频功能,开发者可通过下面方法发送小视频消息,小视频消息默认存储 6 个月,小视频文件格式为 MP4。
开通方式:
使用此功能需要开发者在 开发者后台 (opens new window) 选择对应项目开通。
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCSightMessage | RCMediaMessageContent | RC:SightMsg | 存储 | 计数 | 存储 | 推送 | [小视频] |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
path | NSData | 视频文件本地路径 |
image | UIImage | 视频首帧缩略图 |
duration | NSUInteger | 视频时长, 单位为秒 |
代码示例
RCSightMessage *sightMessage = [RCSightMessage messageWithLocalPath:url thumbnail:image duration:duration]; [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:sightMessage pushContent:nil pushData:nil progress:^(int progress, long messageId) { } success:^(long messageId) { } error:^(RCErrorCode errorCode, long messageId) { } cancel:^(long messageId) { }];
已复制
2
3
4
5
6
7
8
9
10
11
# GIF 消息
从 SDK 2.9.21 版本开始支持发送 GIF 图片消息,默认可选择发送的 GIF 图片大小为 2M。
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCGIFMessage | RCMediaMessageContent | RC:GIFMsg | 存储 | 计数 | 存储 | 推送 | [图片] |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
gifImageData | NSData | GIF 图的数据 |
width | long | GIF 图的宽 |
height | long | GIF 图的高 |
代码示例
RCGIFMessage *gifMsg = [RCGIFMessage messageWithGIFImageData:gifImageData width:gifImage.size.width height:gifImage.size.height]; [[RCIMClient sharedRCIMClient] sendMediaMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:gifMsg pushContent:nil pushData:nil progress:^(int progress, long messageId) { } success:^(long messageId) { } error:^(RCErrorCode errorCode, long messageId) { } cancel:^(long messageId) { }];
已复制
2
3
4
5
6
7
8
9
10
11
12
13
# 发送自定义消息
除了使用 SDK 内置消息外,开发者可根据自己的业务需求来自定义消息,自定义消息的类型、消息结构需要确保多端一致,否则将出现无法互通的问题。
# 注册消息
注册消息共分为两步。
- 定义消息类型
- 注册消息类型
1.定义消息类型
开发者可根据业务需求来选择继承消息基类 RCMessageContent
或者 RCMediaMessageContent
,两者之前的区别可参考下图:

定义消息类型需要该类遵守下面三个协议
一. 编解码协议
协议原型:
@protocol RCMessageCoding <NSObject>
已复制
RCMessageCoding
主要有三个功能:
- 提供消息唯一标识符
- 消息发送时将消息中的所有信息编码为 JSON 数据传输
- 消息接收时将 JSON 数据解码还原为消息对象。
该协议为必须遵守的协议,遵守该协议需实现下面三个方法。
序列化:
消息内容通过此方法,将消息中的所有数据,编码成为 JSON 数据,返回的 JSON 数据将用于网络传输。
- (NSData *)encode;
已复制
反序列化:
网络传输的 JSON 数据,会通过此方法解码,获取消息内容中的所有数据,生成有效的消息内容。
- (void)decodeWithData:(NSData *)data;
已复制
定义消息类型名:
+ (NSString *)getObjectName;
已复制
- 定义的消息类型名(objectname),需要在各个平台上保持一致,否则消息无法互通
- 请勿使用
RC:
开头的类型名,以免和SDK默认的消息名称冲突 - 所有自定义消息必须实现此协议,否则将无法正常传输和使用。
二. 存储协议
协议原型:
@protocol RCMessagePersistentCompatible <NSObject>
已复制
RCMessageCoding
主要有两个功能:
- 指明此消息类型在本地和服务端是否存储
- 指明此消息类是否计入未读消息数
该协议为必须遵守的协议,遵守该协议需实现下面方法:
消息的存储计数策略:
+ (RCMessagePersistent)persistentFlag;
已复制
RCMessagePersistent 说明:
类型 | 存储类型 | 计数类型 | 展示方式 |
---|---|---|---|
MessagePersistent_NONE | 不存储 | 不计数 | 不显示 |
MessagePersistent_ISCOUNTED | 存储 | 计数 | 显示 |
MessagePersistent_ISPERSISTED | 存储 | 不计数 | 显示 |
MessagePersistent_STATUS | 不存储 | 不计数 | 不显示 |
MessagePersistent_NONE:在融云服务端,不存离线消息但是存储历史消息!
MessagePersistent_STATUS:在融云服务端,离线消息和历史记录都不存!
三. 内容摘要协议
协议原型:
@protocol RCMessageContentView
已复制
RCMessageContentView
主要有一个功能:
- 设置此消息在会话列表和本地通知中显示消息的摘要
该协议为非必须遵守的协议,遵守该协议需实现下面方法。
设置消息摘要:
- (NSString *)conversationDigest;
已复制
2.注册消息类型
开发者在进行完自定义消息类后,需要在 SDK 初始化之后,注册此自定义消息类。
- (void)registerMessageType:(Class)messageClass;
已复制
只有注册了该消息类型之后,SDK 才能正确识别和编码、解码该类型的消息。
# 发送消息
继承 RCMessageContent,请使用 发送普通消息 的接口进行发送。
继承 RCMediaMessageContent,请使用 发送媒体消息 的接口进行发送。
# 配置消息推送
# RCMessagePushConfig 属性介绍
从 SDK 4.0.4 版本开始支持此功能,针对每条 Message 都可以设置此属性,详细查看以下参数说明。
参数 | 类型 | 说明 |
---|---|---|
pushTitle | NSString | 推送标题,如果没有设置,会使用 SDK 默认的标题显示规则 |
pushContent | NSString | 推送内容,如果没有,则使用发送消息的 pushContent,最后则会使用 SDK 默认的标题显示规则 |
pushData | NSString | 远程推送附加信息,如果没有,则使用发送消息的 pushData |
forceShowDetailContent | BOOL | 是否强制显示通知详情,当目标用户通过 RCPushProfile 中的 - (void)updateShowPushContentStatus:(BOOL)isShowPushContent success:(void (^)(void))successBlock error:(void (^)(RCErrorCode status))errorBlock; 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情 |
iOSConfig | RCiOSConfig | iOS 平台相关配置 |
androidConfig | RCAndroidConfig | Android 平台相关配置 |
# RCiOSConfig 属性介绍
参数 | 类型 | 说明 |
---|---|---|
threadId | NSString | iOS 平台通知栏分组 ID,相同的 threadId 推送分为一组(iOS10 开始支持) |
apnsCollapseId | NSString | iOS 平台通知覆盖 ID,apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节(iOS10 开始支持) |
# RCAndroidConfig 属性介绍
参数 | 类型 | 说明 |
---|---|---|
notificationId | NSString | Android 平台 Push 唯一标识,目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用 |
channelIdMi | NSString | 小米的渠道 ID,该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建 |
channelIdHW | NSString | 华为的渠道 ID,该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建 |
channelIdOPPO | NSString | OPPO 的渠道 ID,该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建 |
typeVivo | NSString | VIVO 推送通道类型,开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。 目前可选值 "0"(运营消息) 和 "1"(系统消息) |
Channel ID 需要由开发者进行创建,创建方式如下:
推送通道 | 配置说明 |
---|---|
华为 | App 端,调用 Android SDK 创建 Channel ID 接口创建 Channel ID |
小米 | 在小米开放平台管理台上创建 Channel ID 或通过小米服务端 API 创建 |
OPPO | App 端,调用 Android SDK 创建 Channel ID;在 OPPO 管理台登记该 Channel ID,保持一致性 |
vivo | 调用服务端 API 创建 Channel ID |
示例代码
RCMessage *message = [[RCMessage alloc] initWithType:conversationType targetId:targetId direction:MessageDirection_SEND messageId:0 content:messageContent]; RCMessagePushConfig *pushConfig = [[RCMessagePushConfig alloc] init]; pushConfig.pushTitle = @"通知标题"; pushConfig.pushContent = @"通知内容"; pushConfig.pushData = @"通知的 pushData"; pushConfig.iosConfig.threadId = @"iOS 用于通知分组的 id"; pushConfig.iosConfig.apnsCollapseId = @"iOS 用于通知覆盖的 id"; pushConfig.androidConfig.notificationId = @"Android 的通知 id"; pushConfig.androidConfig.channelIdMi = @"小米的 channelId"; pushConfig.androidConfig.channelIdHW = @"华为的 channelId"; pushConfig.androidConfig.channelIdOPPO = @"OPPO 的 channelId"; pushConfig.androidConfig.typeVivo = @"vivo 的类型"; pushConfig.forceShowDetailContent = true; message.messagePushConfig = pushConfig; [[RCIMClient sharedRCIMClient] sendMessage:message pushContent:nil pushData:nil successBlock:nil errorBlock:nil];
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
15