跳到主要内容

配置消息的推送属性

您可以在发送消息时提供 RCMessagePushConfig 配置,对单条消息的推送行为进行个性化配置。例如:

  • 自定义推送标题、推送通知内容
  • 自定义通知栏图标
  • 添加远程推送附加信息
  • 越过接收客户端的配置,强制在推送通知内显示通知内容
  • 其他 APNs, HarmonyOS 或 Android 推送通道支持的个性化配置

相对于发送消息时输入参数中的 pushContentpushDataMessagePushConfig 中的配置具有更高优先级。发送消息时,如已配置 RCMessagePushConfig,则优先使用 RCMessagePushConfig 中的配置。

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 提供以下参数:

参数类型说明
disablePushTitleBOOL是否屏蔽通知标题,此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。
pushTitleNSString推送标题,此处指定的推送标题优先级最高。如不设置,可参考 用户内容类消息格式 中对各内置消息类型默认推送通知标题推送通知内容的说明。
pushContentNSString推送内容。此处指定的推送内容优先级最高。如不设置,可参考 用户内容类消息格式 中对各内置消息类型默认推送通知标题推送通知内容的说明。
pushDataNSString远程推送附加信息,如果没有,则使用发送消息的 pushData
forceShowDetailContentBOOL是否强制显示通知详情,当目标用户通过 RCPushProfile 中的 - (void)updateShowPushContentStatus:(BOOL)isShowPushContent success:(void (^)(void))successBlock error:(void (^)(RCErrorCode status))errorBlock; 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情
templateIdNSString推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送。模板内容在“控制台-自定义推送文案”中进行设置,具体操作请参见 配置和使用自定义多语言推送模板
iOSConfigRCiOSConfigiOS 平台相关配置。详见 RCiOSConfig 属性说明
androidConfigRCAndroidConfigAndroid 平台相关配置。RCiOSConfig 属性说明
hmosConfigRCHarmonyOSConfigHarmonyOS 平台相关配置。RCHarmonyOSConfig 属性说明
  • RCiOSConfig 属性说明

    参数类型说明
    threadIdNSStringiOS 平台通知栏分组 ID,相同的 threadId 推送分为一组(iOS10 开始支持)
    apnsCollapseIdNSStringiOS 平台通知覆盖 ID,apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节(iOS10 开始支持)
    richMediaUriNSStringiOS 推送自定义的通知栏消息右侧图标 URL,需要 App 自行解析 richMediaUri 并实现展示。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。SDK 从 5.2.4 版本开始支持携带该字段。
    interruptionLevelNSString适用于 iOS 15 及之后的系统。取值为 passiveactive(默认),time-sensitive,或 critical,取值说明详见对应的 APNs 的 interruption-level 字段。在 iOS 15 及以上版本中,系统的 “定时推送摘要”、“专注模式” 都可能导致重要的推送通知(例如余额变化)无法及时被用户感知的情况,可考虑设置该字段。SDK 5.6.7 及以上版本支持该字段。
  • RCAndroidConfig 属性说明

    参数类型说明
    notificationIdNSStringAndroid 平台 Push 唯一标识,目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用
    channelIdMiNSString小米的渠道 ID,该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建
    miLargeIconUrlNSString由于小米官方已停止支持该能力,该字段已失效)小米通知类型的推送所使用的通知图片 url。图片要求:大小120 * 120px,格式为 png 或者 jpg 格式。
    此属性 5.1.7 及以上版本支持。支持 MIUI 国内版(国内版要求为 MIUI 12 及以上)和国际版。
    channelIdHWNSString华为的渠道 ID,该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建
    hwImageUrlNSString华为推送通知中自定义的通知栏消息右侧小图片 URL,如果不设置,则不展示通知栏右侧图片。图标文件须小于 512 KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。
    此属性 5.1.7 及以上版本支持
    categoryHWNSString华为推送通道的消息自分类标识,默认为空。category 取值必须为大写字母,例如 IM。App 根据华为要求完成华为自分类权益申请申请特殊权限 后可传入该字段有效。详见华为推送官方文档华为消息分类标准。该字段优先级高于控制台为 App Key 下的应用标识配置的华为推送 Category。SDK 5.4.0 及以上版本支持该字段。
    importanceHWRCImportanceHw华为推送的消息提醒级别。RCImportanceHwLow 表示通知栏消息预期的提醒方式为静默提醒,消息到达手机后,无铃声震动。RCImportanceHwNormal 表示通知栏消息预期的提醒方式为强提醒,消息到达手机后,以铃声、震动提醒用户。终端设备实际消息提醒方式将根据 categoryHW 字段取值、或者控制台配置的 category 字段取值,或者华为智能分类结果进行调整。SDK 5.1.3 及以上版本支持该字段。
    imageUrlHonorNSString荣耀推送通知中用户自定义的通知栏右侧大图标 URL,如果不设置,则不展示通知栏右侧图标。图标文件须小于 512 KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。SDK 5.6.7 及以上版本支持该字段。
    importanceHonorRCimportanceHonor荣耀推送的 Android 通知消息分类,决定用户设备消息通知行为。RCImportanceHonorLow 表示资讯营销类消息。RCImportanceHonorNormal(默认值)表示服务与通讯类消息。SDK 5.6.7 及以上版本支持该字段。
    typeVivoNSStringVIVO 推送服务的消息类别。可选值 0(运营消息) 和 1(系统消息)。该参数对应 VIVO 推送服务的 classification 字段,详见 VIVO 推送消息分类说明
    categoryVivoNSStringVIVO 推送服务的消息二级分类。例如 IM(即时消息)。该参数对应 VIVO 推送服务的 category 字段。详细的 category 取值请参见 VIVO 推送消息分类说明。如果指定二级分类 categoryVivo,必须同时指定 typeVivo(系统消息或运营消息)。请注意遵照 VIVO 官方要求,确保二级分类属于 VIVO 系统消息场景或运营消息场景下允许发送的内容。categoryVivo 字段优先级高于控制台为 App Key 下的应用标识配置的 VIVO 推送 Category。SDK 5.4.2 及以上版本支持该字段。
    channelIdOPPONSStringOPPO 的渠道 ID,该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建
    fcmCollapseKeyNSStringFCM 推送的通知分组 ID。SDK 5.1.3 及以上版本支持该字段。注意,如使用该字段,请确保控制台的 FCM 推送配置中推送方式为通知消息方式
    fcmImageUrlNSStringFCM 推送的通知栏右侧图标 URL。如果不设置,则不展示通知栏右侧图标。SDK 5.1.3 及以上版本支持该字段。注意,如使用该字段,请确保控制台的 FCM 推送配置鉴权方式为证书,推送方式为通知消息方式
    fcmChannelIdNSStringFCM 的渠道 ID,该条消息针对 FCM 推送渠道,如开发者集成了 FCM 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建

    Channel ID 需要由 Android 端开发者进行创建,创建方式如下:

    推送通道配置说明
    华为App 端,调用 Android SDK 创建 Channel ID 接口创建 Channel ID
    小米在小米开放平台管理台上创建 Channel ID 或通过小米服务端 API 创建
    OPPOApp 端,调用 Android SDK 创建 Channel ID;在 OPPO 管理台登记该 Channel ID,保持一致性
    vivo调用服务端 API 创建 Channel ID
  • RCHarmonyOSConfig 属性说明

    参数类型说明
    imageUrlNSStringHarmonyOS 通知栏消息右侧大图标 URL,通知栏右侧图片,格式支持 png、jpg、jpeg、heif、gif、bmp,图片长*宽 < 25000像素,图片不满足要求的情况下,终端不能显示通知消息
    categoryNSStringHarmonyOS推送消息分类,默认为空,category 取值必须为大写字母)取值说明详见对应的鸿蒙 categroy 说明