配置消息的推送属性
您可以在发送消息时提供 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 属性说明
参数 类型 说明 notificationId NSString Android 平台 Push 唯一标识,目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用 channelIdMi NSString 小米的渠道 ID,该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId时,可向 Android 端研发人员获取,channelId 由开发者自行创建miLargeIconUrl NSString (由于小米官方已停止支持该能力,该字段已失效)小米通知类型的推送所使用的通知图片 url。图片要求:大小120 * 120px,格式为 png 或者 jpg 格式。
此属性 5.1.7 及以上版本支持。支持 MIUI 国内版(国内版要求为 MIUI 12 及以上)和国际版。channelIdHW NSString 华为的渠道 ID,该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId时,可向 Android 端研发人员获取,channelId 由开发者自行创建hwImageUrl NSString