配置消息的推送属性
您可以在发送消息时提供 RCMessagePushConfig 配置,对单条消息的推送行为进行个性化配置。例如:
- 自定义推送标题、推送通知内容
- 自定义通知栏图标
- 添加远程推送附加信息
- 越过接收客户端的配置,强制在推送通知内显示通知内容
- 其他 APNs, HarmonyOS 或 Android 推送通道支持的个性化配置
相对于发送消息时输入参数中的 pushContent
和 pushData
,MessagePushConfig
中的配置具有更高优先级。发送消息时,如已配置 RCMessagePushConfig
,则优先使用 RCMessagePushConfig
中的配置。
Objective C
RCTextMessage *txtMsg = [RCTextMessage messageWithContent:@"测试文本消息"];
RCMessage *message = [[RCMessage alloc]
initWithType:ConversationType_PRIVATE
targetId:@"targetId"
direction:MessageDirection_SEND
content:txtMsg];
RCMessagePushConfig *pushConfig = [[RCMessagePushConfig alloc] init];
pushConfig.disablePushTitle = NO;
pushConfig.pushTitle = @"通知标题";
pushConfig.pushContent = @"通知内容";
pushConfig.pushData = @"通知的 pushData";
pushConfig.templateId = @"templateId";
pushConfig.iosConfig.threadId = @"iOS 用于通知分组的 id";
pushConfig.iosConfig.apnsCollapseId = @"iOS 用于通知覆盖的 id";
pushConfig.iosConfig.richMediaUri = @"iOS 推送自定义的通知栏消息右侧图标 URL";
pushConfig.androidConfig.notificationId = @"Android 的通知 id";
pushConfig.androidConfig.channelIdMi = @"小米的 channelId";
pushConfig.androidConfig.channelIdHW = @"华为的 channelId";
pushConfig.androidConfig.categoryHW = @"华为的 Category";
pushConfig.androidConfig.channelIdOPPO = @"OPPO 的 channelId";
pushConfig.androidConfig.typeVivo = @"vivo 的 classification";
pushConfig.androidConfig.categoryVivo = @"vivo 的 Category";
pushConfig.hmosConfig.imageUrl = "HarmonyOS 通知栏消息右侧大图标 URL";
pushConfig.hmosConfig.category = "HarmonyOS 推送消息分类";
pushConfig.forceShowDetailContent = YES;
message.messagePushConfig = pushConfig;
/// 调用 IMKit 或 IMLib 发送消息方法
消息推送属性说明
RCMessagePushConfig
提供以下参数:
参数 | 类型 | 说明 |
---|---|---|
disablePushTitle | BOOL | 是否屏蔽通知标题,此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。 |
pushTitle | NSString | 推送标题,此处指定的推送标题优先级最高。如不设置,可参考 用户内容类消息格式 中对各内置消息类型默认推送通知标题与推送通知内容的说明。 |
pushContent | NSString | 推送内容。此处指定的推送内容优先级最高。如不设置,可参考 用户内容类消息格式 中对各内置消息类型默认推送通知标题与推送通知内容的说明。 |
pushData | NSString | 远程推送附加信息,如果没有,则使用发送消息的 pushData |
forceShowDetailContent | BOOL | 是否强制显示通知详情,当目标用户通过 RCPushProfile 中的 - (void)updateShowPushContentStatus:(BOOL)isShowPushContent success:(void (^)(void))successBlock error:(void (^)(RCErrorCode status))errorBlock; 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情 |
templateId | NSString | 推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送。模板内容在“控制台-自定义推送文案”中进行设置,具体操作请参见 配置和使用自定义多语言推送模板。 |
iOSConfig | RCiOSConfig | iOS 平台相关配置。详见 RCiOSConfig 属性说明。 |
androidConfig | RCAndroidConfig | Android 平台相关配置。RCiOSConfig 属性说明。 |
hmosConfig | RCHarmonyOSConfig | HarmonyOS 平台相关配置。RCHarmonyOSConfig 属性说明。 |
-
RCiOSConfig 属性说明
参数 类型 说明 threadId NSString iOS 平台通知栏分组 ID,相同的 threadId 推送分为一组(iOS10 开始支持) apnsCollapseId NSString iOS 平台通知覆盖 ID,apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节(iOS10 开始支持) richMediaUri NSString iOS 推送自定义的通知栏消息右侧图标 URL,需要 App 自行解析 richMediaUri
并实现展示。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。SDK 从 5.2.4 版本开始支持携带该字段。interruptionLevel NSString 适用于 iOS 15 及之后的系统。取值为 passive
,active
(默认),time-sensitive
,或critical
,取值说明详见对应的 APNs 的 interruption-level 字段。在 iOS 15 及以上版本中,系统的 “定时推送摘要”、“专注模式” 都可能导致重要的推送通知(例如余额变化)无法及时被用户感知的情况,可考虑设置该字段。SDK 5.6.7 及以上版本支持该字段。 -
RCAndroidConfig 属性说明
参数 类型