更新时间: 2021-03-24
# 属性描述
消息属性 | 描述 |
---|---|
消息类名 | 各端消息名 |
存储属性 | 存储 / 不存储 |
离线属性 | 缓存 / 不缓存 |
推送属性 | 是/否 |
ObjectName | 传输层名称,与消息类名一一对应 |
计数属性 | 计数 / 不计数 |
消息尺寸 | 128 KB |
推送内容 | 详见各消息类送方式 |
# 存储属性
存储属性 | 存储分类 | 支持平台 | 详细描述 |
---|---|---|---|
存储 | 客户端 | Android、iOS | 发送、接收该消息后,本地数据库存储 Web 端 和 小程序端因本地存储不可靠,不支持客户端消息存储,但可通过历史消息云存储服务获取历史记录 |
存储 | 云端 | Android、iOS、Web | 默认不在云端进行存储,需开通单群聊消息云存储 (opens new window)服务,开通后,可在融云服务端存储 6 个月的历史消息,供客户端按需拉取 |
不存储 | 客户端 | Android、iOS | 发送、接收该消息后,本地数据库不存储 |
不存储 | 云端 | Android、iOS、Web | 无论是否开通历史消息云存储服务,该消息均不存储 |
# 计数属性
接收收到消息时,会话是否累计未读数。
计数属性 | 支持平台 | 详细描述 |
---|---|---|
计数 | iOS、Android、Web | 会话未读消息数 + 1,该属性只影响会话列表未读数计数,App 应用角标可根据每个会话列表未读数累加获得 |
不计数 | iOS、Android、Web | 会话未读消息数不变 |
# 离线属性
接收人当前不在线时,是否进行离线缓存。
离线属性 | 详细描述 |
---|---|
存储 | 消息进行离线缓存,默认 7 天。接收人在 7 天内上线,均可接收到该消息。超过 7 天后,消息被离线缓存淘汰。如有需要,可通过云端存储拉取到该消息 |
不存储 | 消息不进行离线缓存,所以只有接收人在线时,才可收到该消息。该消息不进行历史消息云存储、不进入云端存储( Log 日志 )、不进行消息同步( 消息路由 ) |
# 推送属性
接收人是否接收推送,当离线属性为 存储
时,该属性生效。离线属性为 不存储
时属性无效。
由于 Web、小程序、PC 端没有推送平台,无法收到推送提醒。
推送属性 | 平台 | 推送方式 | 详细描述 |
---|---|---|---|
推送 | iOS、Android | APNs、华为、小米、魅族、OPPO、vivo、FCM、融云 | 当有离线缓存消息时,进行远程推送提醒,内容为该推送提醒显示的内容 |
不推送 | iOS、Android | -- | 当有离线缓存消息时,不进行远程推送提醒 |
# 发送普通消息
# 发送入口
# 通过消息内容发送
接口原型:
- (RCMessage *)sendMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData success:(void (^)(long messageId))successBlock error:(void (^)(RCErrorCode nErrorCode, long messageId))errorBlock;
已复制
2
3
4
5
6
7
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationType | RCConversationType | 是 | 会话类型,单聊传入 ConversationType_PRIVATE |
targetId | NSString | 是 | 接收方的 userId |
content | RCMessageContent | 是 | 消息的内容 |
pushContent | NSString | 否 | 接收方离线时需要显示的远程推送内容 |
pushData | NSString | 否 | 接收方离线时需要在远程推送中携带的非显示数据 |
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 对象 [[RCIM sharedRCIM] 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:@"消息内容"]; [[RCIM sharedRCIM] sendMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:textMessage pushContent:nil pushData:nil success:^(long messageId) { } error:^(RCErrorCode nErrorCode, long messageId) { }];
已复制
2
3
4
5
6
7
# 位置消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCLocationMessage | RCMessageContent | RC:LBSMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
image | UIImage | 地理位置的缩略图 |
location | CLLocationCoordinate2D | 地理位置的二维坐标 |
locationName | NSString | 地理位置的名称 |
代码示例
RCLocationMessage *locationMessage = [RCLocationMessage messageWithLocationImage:image location:location locationName:locationName]; [[RCIM sharedRCIM] sendMessage:ConversationType_PRIVATE targetId:@"接收方的 userId" content:locationMessage pushContent:nil pushData: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 | 是 | 消息的内容 |
pushContent | NSString | 否 | 接收方离线时需要显示的远程推送内容 |
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 | 图片的原始数据 |
如果想发送原图,请设置属性 full 为 YES。
代码示例
RCImageMessage *message = [RCImageMessage messageWithImageData:data]; [[RCIM sharedRCIM] 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
# 语音消息
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCHQVoiceMessage | RCMediaMessageContent | RC:HQVCMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
localPath | NSString | 语音的本地路径 |
duration | long | 语音消息的时长 |
示例代码
RCHQVoiceMessage *hqVoiceMsg = [RCHQVoiceMessage messageWithPath:path duration:duration]; [[RCIM sharedRCIM] 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 | 存储 | 计数 | 存储 | 推送 | 消息内容 |
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
localPath | NSString | 文件的本地路径 |
代码示例
RCFileMessage *fileMessage = [RCFileMessage messageWithFile:path] [[RCIM sharedRCIM] 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
# 小视频消息
融云提供了小视频功能. 可拍摄生成 10 秒小视频消息功能及在本地相册中选择视频文件发送功能,小视频消息默认存储 6 个月。 使用此功能需要开发者在 开发者后台 (opens new window) 选择对应项目开通。
集成方式
请您参考 全局配置- 引入 SDK - 导入 在 Podfile
文件中新增下面内容
pod 'RongCloudIM/Sight', '~> 2.10.4'
已复制
必须保持 RongCloudIM 所有导入的模块版本号一致。
发送本地视频
开启小视频服务后,SDK 支持从本地相册中选择视频文件发送,需要开发者设置选择媒体资源是否包含视频文件,默认为不包含,设为后支持发送本地视频文件,时长上限为 2 分钟,设置方法如下:
属性所属类为 RCIM
,默认为 NO
。
@property(nonatomic, assign) BOOL isMediaSelectorContainVideo;
已复制
发送小视频消息
消息说明
消息类名 | 父类名称 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|---|
RCSightMessage | RCMediaMessageContent | RC:SightMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
属性说明
构建参数说明:
参数 | 类型 | 说明 |
---|---|---|
path | NSData | 视频文件本地路径 |
image | UIImage | 视频首帧缩略图 |
duration | NSUInteger | 视频时长, 单位秒 |
代码示例
RCSightMessage *sightMessage = [RCSightMessage messageWithLocalPath:url thumbnail:image duration:duration]; [[RCIM sharedRCIM] 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,接收于小于 1M 的消息时自动下载显示,大于 1M 时需要手动点击下载。
消息说明
消息类名 | 父类名称 | 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]; [[RCIM sharedRCIM] 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 内置消息外,开发者可根据自己的业务需求来自定义消息。
# 注册消息
注册消息共分为四步。
- 定义消息类型
- 注册消息类型
- 定义消息 Cell
- 注册消息 Cell
定义消息类型
开发者可根据业务需求来选择继承消息基类 RCMessageContent
或者 RCMediaMessageContent
,两者之前的区别可参考下图:

定义消息类型需要该类遵守下面三个协议
一. 编解码协议
协议原型:
@protocol RCMessageCoding <NSObject>
已复制
RCMessageCoding
主要有三个功能:
- 提供消息唯一标识符
- 消息发送时将消息中的所有信息编码为 JSON 数据传输
- 消息接收时将 JSON 数据解码还原为消息对象。
该协议为必须遵守的协议,遵守该协议需实现下面三个方法。
序列化:
消息内容通过此方法,将消息中的所有数据,编码成为 JSON 数据,返回的 JSON 数据将用于网络传输。
- (NSData *)encode;
已复制
反序列化:
网络传输的 JSON 数据,会通过此方法解码,获取消息内容中的所有数据,生成有效的消息内容。
- (void)decodeWithData:(NSData *)data;
已复制
定义消息类型名:
+ (NSString *)getObjectName;
已复制
- 定义的消息类型名,需要在各个平台上保持一致,否则消息无法互通
- 请勿使用
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;
已复制
注册消息类型
开发者在进行完自定义消息类后,需要在 SDK init 之后,注册此自定义消息类。
- (void)registerMessageType:(Class)messageClass;
已复制
只有注册了该消息类型之后,SDK 才能正确识别和编码、解码该类型的消息。
# 显示消息
定义消息 Cell
开发者可根据自己的业务需求是否需要显示用户信息来选择继承消息 Cell。
- 不包含用户头像和昵称
类名:
RCMessageBaseCell
已复制
结构图:

控件需要添加在 baseContentView
上,建议在 baseContentView
上方预留 10
- 含用户头像和昵称
类名:
RCMessageCell
已复制
结构图:

控件需要添加在 messageContentView
上,根据需求在画 Cell 视图布局的时候调整 messageContentView
的 frame ,如果是接收方,只需要修改 messageContentView
的 width
和 height
,如果是发送方,需要修改 messageContentView
的 x
、 width
和 height
。
开发者需要在 Cell 的初始化中布局,并重写下面方法来返回 Cell 的 Size
。当显示自定义消息时,必须实现该方法来返回 Cell 的 Size
。
参数说明:
参数 | 类型 | 说明 |
---|---|---|
model | RCMessageModel (opens new window) | 要显示的消息 model |
collectionViewWidth | CGFloat | Cell 所在的 collectionView 的宽度 |
extraHeight | CGFloat | Cell 内容区域之外的高度 |
方法原型:
+ (CGSize)sizeForMessageModel:(RCMessageModel *)model withCollectionViewWidth:(CGFloat)collectionViewWidth referenceExtraHeight:(CGFloat)extraHeight;
已复制
2
3
注:extraHeight
就是上面 Cell 结构图中红色箭头的总高度, 返回的 cell 的 size
的高 等于 图中标注的 height + extraHeight
,size 的宽就是 collectionViewWidth
注册消息 Cell
SDK 需要开发者在会话页面注册您定义的消息 Cell 并绑定您的消息类型
- (void)registerClass:(Class)cellClass forMessageClass:(Class)messageClass;
已复制
# 发送消息
自定义消息继承 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