配置推送通知

大约 32 分钟

配置推送通知

本文主要介绍推送通知的结构和字段,建议按需配置。推送通知包含环信提供的基本推送配置以及各厂商的推送配置,默认情况下,后者优先级较高,会覆盖前者。

以下为推送通知的结构:

{
    "title": "环信推送服务",
    "content": "你好,欢迎使用环信推送服务",
    "subTitle": "环信",
    "config": {
        "clickAction": {
            "url": "https://www.easemob.com"
        }
    },
    "easemob": {
        "style": 2,
        "iconUrl": "https://www.easemob.com/statics/common/images/logo.png?20211109",
        "bigPicture": "https://www.easemob.com/statics/images/push/case1@2x.png",
        "sound": 1,
        "vibrate": 1
    },
    "huawei": {
        "message": {
            "android": {
                "category": "IM",
                "targetUserType": 1 # 配置华为推送消息为测试类型,可突破分类限制,仅供测试推送收发使用。
            }
        }
    },
    "honor": {
        "androidConfig": {
            "androidNotification": {
                "importance": "NORMAL"
            }
        }
    },
    "xiaomi": {
        "channelId": "{{xiaomi_channel_id}}" # 配置对应平台的通道ID
    },
    "oppo": {
        "channelId": "{{oppo_channel_id}}" # 配置对应平台的通道ID
    },
    "vivo": {
        "classification": 1,
        "category": "IM"
    },
    "apns": {
        "contentAvailable": true,
        "mutableContent": true
    },
    "fcmV1": {
        "androidConfig": {
            "androidNotification": {
                "image": "https://www.easemob.com/statics/common/images/logo.png?20211109"
            }
        }
    },
    "harmonyOS":{
        "title":"鸿蒙推送",
        "body":"欢迎测试环信鸿蒙推送",
        "image":"https://www.easemob.com/statics/common/images/logo.png?20211109"
    }
    
}

环信通道推送通知示例如下:

img

FCM 通道推送通知示例如下:

img

基本推送配置

字段类型描述支持平台是否必需
titleString通知栏展示的通知标题,默认为“您有一条新消息”。该字段长度不能超过 32 个字符(一个汉字相当于两个字符)。iOS & Android
subTitleString通知栏展示的通知副标题。该字段长度不能超过 10 个字符。iOS
contentString通知栏展示的通知内容。默认为“请及时查看”。该字段长度不能超过 100 个字符(一个汉字相当于两个字符)。iOS & Android
extObject推送自定义扩展信息,为自定义 key-value 键值对。键值对个数不能超过 10 且长度不能超过 1024 个字符。iOS & Android
configObject与用户点击通知相关的操作。以及角标的配置,包含 clickActionbadge 字段。iOS & Android
config.clickActionObject在通知栏中点击触发的动作,均为字符串类型:
- url:打开自定义的 URL;
- action:打开应用的指定页面;
- activity:打开应用包名或 Activity 组件路径。若不传该字段,默认打开应用的首页。

注意

环信 iOS 推送通道只支持设置为 url

Android
config.badgeObject推送角标,包含以下三个字段:
- addNum:整型,表示推送通知到达设备时,角标数字累加的值。
- setNum:整型,表示推送通知到达设备时,角标数字显示的值。
- activity:字符串类型,入口类(华为角标需要配置)。
Android

各厂商推送配置

字段类型描述是否必需
easemobObject环信推送
apnsObjectApple 推送通知服务(APNs)
fcmObject谷歌 Firebase 云消息传递 (FCM)
fcmV1Object谷歌 Firebase 云消息传递 (FCM) V1
xiaomiObject小米推送。
vivoObjectvivo 推送。
oppoObjectOPPO 推送。
meizuObject魅族推送特性。
huaweiObject华为推送特性。
honorObject荣耀推送特性。

Easemob 推送说明

下面为包含大图片的通知的代码示例,你可以按实际需求配置:

{
    "title": "通知栏显示的通知标题",
    "content": "通知栏展示的通知内容",
    "subTitle": "通知栏显示的通知副标题",
    "iconUrl": "https://docs-im.easemob.com/lib/tpl/bootstrap3_ori/images/logo.png",
    "needNotification": true,
    "badge": {
        "setNum": 0,
        "addNum": 1,
        "activity": "com.hyphenate.easeim.section.me.activity.AboutHxActivity"
    },
    "operation": {
        "type": "2",
        "openUrl": "https://www.baidu.com/",
        "openAction": "com.hyphenate.easeim.section.me.activity.OfflinePushSettingsActivity"
    },
    "channelId": "chat",
    "channelName": "消息",
    "channelLevel": 3,
    "autoCancel": 1,
    "expiresTime": 1650859482843,
    "sound": 0,
    "vibrate": 0,
    "style": 2,
    "bigTxt": "大文本内容",
    "bigPicture": "https://docs-im.easemob.com/lib/tpl/bootstrap3_ori/images/logo.png",
    "id": 056734579
}

推送字段说明如下表所示:

字段类型描述支持平台
titleString通知栏展示的通知标题。iOS & Android
contentString通知栏展示的通知内容。iOS & Android
subTitleString通知栏展示的通知副标题。iOS
iconUrlString推送图标的 URL。iOS & Android
needNotificationboolean是否弹出通知:
- (默认)true:通知消息;
- false:透传消息。
iOS & Android
badgeObject推送角标。详见 基本推送配置中的角标说明。iOS & Android
operationObject在通知栏中点击触发的动作。iOS & Android
operation.typeInt在通知栏中点击触发的动作类型。
- (默认)0:启动应用。
- 1:打开自定义的 URL。需设置 openUrl 字段为自定义的 URL,若不设置,点击无效果。
- 2:打开应用的指定页面。需设置 openAction 为打开的应用页面的地址。若不设置,点击无效果。

注意

环信 iOS 推送通道只支持启动应用和打开自定义 URL,因此只能设置为 01

iOS & Android
channelIdString通知渠道 ID,默认为 chat。客户端渠道存在则通知。若客户端渠道不存在,则结合 channelName,channelLevel 创建新通道。Android
channelNameString通知渠道名称,默认为 消息。只有第一次创建通道时使用。Android
channelLevelInt通知级别,只有第一次创建通道时使用。
- 0:最低;
- 3:默认;
- 4:高。
Android
autoCancelInt点击通知后是否自动关闭通知栏。
- 0:否;
- (默认)1:是。
Android
expiresTimeLong通知展示过期的 Unix 时间戳,单位为毫秒,例如 1650859482843 表示的时间为 2022-04-25 12:04:42。
计算公式:当前时间戳 + 保留时间。
iOS & Android
soundInt声音提醒。
- (默认)0:无声音;
- 1:声音提醒。
iOS & Android
vibrateInt振动提醒。
- (默认)0:无振动;
- 1:振动提醒。
iOS & Android
styleInt展示样式。
-(默认)0:普通样式;
- 1:大文本样式;
- 2:大图片样式。
iOS & Android
bigTxtString大文本内容。该字段仅在 style1 时需要设置。iOS & Android
bigPictureString大图片 URL。该字段仅在 style2 时需要设置。Android
idLong通知 ID。默认值为随机数。当 ID 相同时,新通知的内容会覆盖之前的通知。iOS & Android

APNs 推送说明

字段类型描述
invalidationTimeInt推送过期时间间隔,单位为毫秒。
priorityInt通知的优先级。
- 5:发送通知时会考虑设备电量;
- 10:立即发送通知。
pushTypeString推送展示类型。在 iOS 13 或 watchOS 6 以上设备支持,只能为 “background” 或 “alert”,默认为 “alert”。
collapseIdString用于将多个通知合并为用户的单个通知的标识符。
apnsIdString通知的唯一标识。
badgeInt应用的图标上方显示的角标数字。
soundString设备收到通知时要播放的铃声:
- 设置的铃声最多为 30 秒。若超过该时间,系统会启用默认铃声 default;
- 铃声文件只支持 aiffwavcaf 格式,例如 test.caf
- 铃声文件必须放在 app 的 /Library/Sounds 目录中。
mutableContentBool是否向推送中增加 mutable-content 字段开启 APNs 通知扩展。
- true:是;
- false:否。
contentAvailableBool是否配置后台更新通知。开启后系统会在后台唤醒您的应用程序,并将通知传递。
- true:是;
- false:否。
categoryNameString通知的类型。
threadIdString通知分组标识符,在应用中唯一。
titleString通知的标题。
subTitleString通知的副标题。
contentString通知的正文内容。
titleLocKeyString用于将标题字符串进行本地化的键。
titleLocArgsList字符串的数组,用于替换标题字符串中的变量。
subTitleLocKeyString用于将副标题字符串进行本地化的键。
subTitleLocArgsList字符串的数组,用于替换副标题字符串中的变量。
bodyLocKeyString用于将消息文本进行本地化的键。
bodyLocArgsList字符串的数组,用于替换消息文本中的变量。
extObject自定义推送扩展信息。
launchImageString要显示的启动图像文件的名称。
interruptionLevelString中断等级,详见 管理通知open in new window
- ACTIVE:系统立即显示通知,点亮屏幕,并可播放声音。
- CRITICAL:系统立即显示通知,点亮屏幕,并绕过静音开关播放声音。
- PASSIVE:系统将通知添加到通知列表中,但不点亮屏幕或播放声音。
- TIME_SENSITIVE:系统立即显示通知,点亮屏幕,播放声音,并突破系统通知控制。
liveActivityEventString实时活动,详见使用 ActivityKit 推送通知启动和更新实时活动open in new window
- START :开始
- UPDATE:更新
- END:结束
timestampLong实时活动时间戳。协助始终显示最新的 ActivityKit 推送更新。
dismissalDateLong实时活动通知的解除时间戳。
默认情况下,实时活动在结束后会在锁定屏幕上显示长达四个小时,可以自行定义实时窗口自动解除时间。
staleDateLong实时活动数据有效期时间戳。
在某些情况下(例如进入没有网络连接的区域),可能无法使用新信息更新实时活动,从而导致其显示过时的数据。若要提供最佳的用户体验并让用户知道实时活动显示过时的信息,请在可选字段中添加此时间戳,以提供系统将实时活动视为过时的时间。每次更新时,都可以携带数据有效期时间戳。
attributesTypeString实时活动动态数据类型。
attributesObject实时活动动态数据。
contentStateObject实时活动动态数据结构和内容。

FCM 推送说明

字段类型描述
conditionString用于确定消息目标的逻辑条件表达式。
collapseKeyString指定一组可折叠的消息(例如,含有 collapse_key: “Updates Available”),以便当恢复传送时只发送最后一条消息。这是为了避免当设备恢复在线状态或变为活跃状态时重复发送过多相同的消息。
priorityString消息的优先级,即“normal”(普通)和“high”(高)。在 Apple 平台中,这些值对应于 APNs 优先级中的 5 和 10。
timeToLiveString设备离线后消息在 FCM 存储空间中保留的时长(以秒为单位)。支持的最长存留时间为 4 周,默认值为 4 周。
dryRunBool是否为测试消息。
- true:是。开发者可在不实际发送消息的情况下对请求进行测试。
- false:否。
restrictedPackageNameString应用的软件包名称,其注册令牌必须匹配才能接收消息。
dataObject自定义推送扩展信息。
notificationObject用户可见的预定义通知载荷键值对,详见 FCM 推送通知的字段

FCM 推送通知的字段

字段类型描述
titleString通知栏中展示的通知的标题。
bodyString通知栏中展示的通知的内容。
androidChannelIdString通知的渠道 ID。
- 应用必须使用此渠道 ID 创建一个渠道,才能收到包含此渠道 ID 的所有通知。
- 如果你不在请求中发送该渠道 ID,或者应用尚未创建所提供的渠道 ID,则 FCM 将使用应用清单文件中指定的渠道 ID。
iconString通知图标。
soundString设备收到通知时要播放的声音,例如 ring.mp3。声音文件必须放在 app 的 /res/raw/ 目录中。
tagString用于替换抽屉式通知栏中现有通知的标识符。
colorString通知的图标颜色。
clickActionString与用户点击通知相关的操作。点击通知时,将会启动带有匹配 intent 过滤器的 Activity。
titleLocKeyString应用的字符串资源中标题字符串的键,用于将标题文字本地化为用户当前的本地化设置语言。
titleLocArgsList将用于替换 title_loc_key(用来将标题文字本地化为用户当前的本地化设置语言)中的格式说明符的变量字符串值。
bodyLocKeyString应用的字符串资源中正文字符串的键,用于将正文文字本地化为用户当前的本地化设置语言。
bodyLocArgsList将用于替换 body_loc_key(用来将正文文字本地化为用户当前的本地化设置语言)中的格式说明符的变量字符串值。

FCM V1 推送说明

字段类型描述
typeEnumFCM 推送通知类型:BOTHDATANOTIFICATION

注意

不同的推送通知类型对应不同的默认选项。

详见在 Android 应用中接收消息open in new window
dataObject自定义推送扩展,为键值对格式,例如 {"k1":"v1", "k2":"v2"}
notificationObject自定义推送内容,详见 FCM V1 推送通知的字段
androidConfigObjectAndroid 推送配置,详见 Android 推送配置
webPushConfigObjectWeb 推送配置,详见 Web 推送配置
apnsConfigObjectAPNs 推送配置,详见 APNs 推送配置
optionsObject自定义推送配置选项,为键值对格式,例如,{"k1":"v1", "k2":"v2"}。
conditionString发送推送消息的条件。

FCM V1 推送通知的字段

字段类型描述
titleString推送标题。
bodyString推送内容。
imageString显示在通知中的图片的 URL。图片不能超过 1 MB。

Android 推送配置

字段类型描述
collapseKeyString消息折叠标识,以便在可以恢复传递时仅发送最后一条消息。在任何指定时间内最多允许使用 4 个不同的折叠键。
priorityString消息优先级:
- NORMAL:普通。
- HIGH:高。
ttlString离线保留时长,默认为 4 周。该参数值的单位为秒,最多可精确到小数点后九位,以 s 结尾,例如 3.5s
androidNotificationObject安卓推送通知。详见 Android 推送通知的字段
directBootOkBool如果设置为 true,当设备处于直接启动模式时,消息将被允许传送到应用程序。详见支持直接启动模式open in new window

Android 推送通知的字段

字段类型描述
titleString推送标题,覆盖 FCM V1 推送通知的字段中的 title 字段。
bodyString推送内容,覆盖 FCM V1 推送通知的字段中的 body 字段。
iconString通知的图标。默认为应用图标。
colorString通知的图标颜色,以 #rrggbb 格式表示。
soundString通知铃声,声音文件必须位于 /res/raw/。
tagString替换标识,如果通知栏已存在相同标识的通知则替换
imageString显示的图像的 URL,覆盖 FCM V1 推送通知的字段中的 image 字段。
clickActionString用户点击通知操作。
bodyLocKeyString推送内容本地化键。
bodyLocArgsArray推送内容本地化参数。
titleLocKeyString推送标题本地化参数。
titleLocArgsArray推送标题本地化参数。
channelIdString通道 ID。

Web 推送配置

字段类型描述
headersObjectweb push 协议中定义的 HTTP 标头,例如,{ "k1": "v1", "k2": "v2"}
notificationObject推送内容, 详见 FCM V1 推送通知的字段

APNs 推送配置

字段类型描述
headersObjectApple 推送通知服务中定义的 HTTP 请求标头。详见 APNs 请求标头open in new window了解支持的标头,例如,{ "apns-push-type": "alert", "apns-priority": "10"}
payloadObject作为 JSON 对象的 APNs 负载,包括 aps 字典和自定义负载。详见有效负载密钥参考open in new window。例如,{"aps":{"alert":{"title":"环信推送提醒","subtitle":"环信","body":"欢迎使用环信即时推送服务"}},"EPush":"{}"}

小米推送说明

自定义通道和跳转。

{
    "title":"你好,欢迎使用环信",
    "content":"你好",
    "channelId":"easemob-test",
    "notifyEffect":3,
    "webUri":"http://www.easemob.com"
}

推送字段说明:

字段类型描述
titleString通知栏中展示的通知的标题。 该字段长度不能超过 50 字符(一个汉字等于一个字符)。
descriptionString通知栏中展示的通知的内容。该字段长度不能超过 128 字符(一个汉字等于一个字符)。
restrictedPackageNamesString应用包名。
passThroughInt是否弹出通知:
- 0:通知;
- 1:透传消息。
payloadObject通知的内容。
notifyTypeInt通知方式。
- -1:默认全部;
- 1:使用默认提示音提示;
- 2:使用默认振动提示;
- 4:使用默认 led 灯光提示。
timeToLiveLong离线保留时长(单位为毫秒)。
timeToSendLong定时发送消息。用自 1970 年 1 月 1 日以来 00:00:00.0 UTC 时间表示。
notifyIdInt相同 notify_id 的通知栏消息会覆盖之前。
soundString铃声,例:"android.resource://" + PACKAGENAME + "/raw/shaking"
tickerString开启通知消息在状态栏滚动显示。
notifyForegroundString开启或关闭 app 在前台时的通知弹出。
- 0:开启;
- 1:关闭。
notifyEffectString预定义通知栏消息的点击行为。通过设置 extra.notify_effect 的值以得到不同的预定义点击行为。
- 1:通知栏点击后打开 app 的 Launcher Activity;
- 2:通知栏点击后打开 app 的任一 Activity(intentUri);
- 3:通知栏点击后打开网页(webUri)。
intentUriString当前 app 的组件。当 notifyEffect 为 2 时,该参数值的格式为 “intent:#Intent;action=xxxx;end”。
webUriString网页。
flowControlInt控制是否需要进行平缓发送。
jobkeyString消息聚合,相同 jobkey 的消息只展示第一条。
callbackUrlString回调地址。
callbackParamString回调参数。
callbackTypeInt回调类型:
- 1:送达;
- 2:点击;
- 3:送达或点击;
- 16:设备无效;
- 32:禁用 PUSH;
- 64:不符合过滤条件;
- 128:推送超限;
- 1024:TTL 过期。
localeString可以接收消息的设备的语言范围,用逗号分隔。
localeNotInString不可以接收消息的设备的语言范围,用逗号分隔。
modelString可以收到消息的设备的机型/品牌/价格范围。
modelNotInString不可以收到消息的设备的机型/品牌/价格范围。
appVersionString可以接收消息的 app 版本号。
appVersionNotInString不可以接收消息的 app 版本号。
connptString特定的网络环境下才能接收到消息。目前仅支持指定 ”wifi”。
onlySendOnceString值为 1时表示消息仅在设备在线时发送一次,不缓存离线消息进行多次下发。
channelIdString通知类别的 ID。open in new window

vivo 推送说明

系统消息,回执和打开网页。

{
    "classification": 1,
    "extra": {
      "callback": "http://www.easemob.com/callback",
      "callbackParam": "test push callback"
    },
    "skipContent": "http://www.easemob.com",
    "skipType": 2
  }

推送字段说明:

字段类型描述
titleString通知栏中展示的通知的标题。该字段长度不能超过 40 字符(一个汉字等于两个字符)。
contentString通知栏中展示的通知的内容。 该字段长度不能超过 100 字符(一个汉字等于两个字符)。
notifyTypeInt通知类型。
- 1:无;
- 2:响铃;
- 3:振动;
- 4:响铃和振动。
timeToLiveInt消息保留时长(单位:秒)。
skipTypeInt点击跳转类型。
- 1:打开APP首页;
- 2:打开链接;
- 3:自定义;
- 4:打开 app 内指定页面。
skipContentString跳转内容。跳转类型为 2 时,跳转内容最大 1000 个字符。跳转类型为 4 时,跳转内容的格式为 “intent:#Intent;component=应用包名/activity类路径;end”。
networkTypeInt网络方式。
- (默认)-1:不限;
- 1:Wi-Fi 下发送。
classificationInt消息类型。
- 0:运营类消息;
- 1:系统类消息。 在环信控制台的 vivo 推送的添加推送证书对话框中也可以配置该消息类型,但这里的优先级高于控制台的配置。
clientCustomMapObject客户端自定义键值对。
requestIdString用户请求唯一标识,长度限制为 64 字符。
pushModeInt推送模式。
- (默认)0:正式推送;
- 1:测试推送。
extraObject推送回调
categoryString二级分类,字段的值详见二级分类标准 中category说明open in new window。 1. 填写category 后,可以不设置 classification 参数,但若设置 classification,需保证 categoryclassification 是正确对应关系,否则推送失败。 2. 该参数请按照消息分类规则填写,且必须大写;若传入无效的值,则推送失败。
notifyIdInt通知 ID,即通知的唯一标识。若多个消息的通知 ID 相同,到达设备的新消息会覆盖旧消息显示在设备通知栏中。取值范围为:1-2147483647。
profileIdString关联终端设备登录用户标识,最大长度为 64 字符。
sendOnlineBool是否在线直推,设置为 true 表示是在线直推,false 表示非直推。在线直推功能推送时在设备在线下发一次,设备离线直接丢弃。

vivo 推送回调

字段类型描述
callbackString回调 URL, 长度限制为 128 字符。
callbackParamString回调参数,长度限制为 64 字符。

OPPO 推送说明

标题和跳转:

{
    "title":"你好,欢迎使用环信推送",
    "subTitle":"你好",
    "content":"你好先生",
    "channelId":"easemob-channel",
    "clickActionType":2,
    "clickActionUrl":"http://www.easemob.com"
}

推送字段说明:

字段类型描述
titleString通知栏中展示的通知的标题。该字段长度不能超过 32 字符(一个汉字等于一个字符)。
subTitleString通知栏中展示的通知的副标题。
contentString推送显示内容。 该字段长度不能超过 200 字符(一个汉字等于一个字符)。
channelIdString通道 ID。
appMessageIdString同一 message id 只推一次。
styleInt通知栏样式。
- 1:标准;
- 2:长文本;
- 3:大图。
clickActionTypeInt点击动作类型。
- 0:启动应用;
- 1:打开应用内页(activity的intent action);
- 2:打开网页;
- 4:打开应用内页(activity);
- 5:Intent scheme URL。
clickActionActivityString应用内页地址【click_action_type14 时必填,长度限制为 500 字符】
clickActionUrlString网页地址【click_action_type25 时必填,长度限制为 500 字符】
actionParametersObject动作参数,打开应用内页或网页时传递给应用或网页。
offLineBool是否进离线消息。
- true:是;
- false:否。
offLineTtlInt离线消息保存时长 (单位为秒) 。
timeZoneString时区(GMT+08:00)。
callBackUrlString回调地址。
callBackParameterString回调参数。
showTtlInt限时展示(秒) 。
notifyIdInt通知显示时的唯一标识,实现新的消息覆盖上一条消息功能。

魅族推送说明

字段类型描述
titleString通知栏中展示的通知的标题。该字段长度不能超过 32 字符(一个汉字等于一个字符)。
contentString通知栏中展示的通知的内容。该字段长度不能超过 100 字符(一个汉字等于一个字符)。
noticeExpandTypeInt展开方式。
- 0:禁用;
- 1:文本。
noticeExpandContentString展开内容。noticeExpandType1 时,即为文本时,必填。
clickTypeInt点击动作。
- 0:打开应用;
- 1:打开应用页面;
- 2:打开 H5 地址;
- 3:应用客户端自定义。
urlStringH5 页面地址。
parametersObject参数。
activityString应用页面地址。
customAttributeString应用客户端自定义内容。
isOffLineBool是否进离线消息。
- true:是;
- false:否。
validTimeInt有效时长(小时)。
isSuspendBool是否通知栏悬浮窗显示。
- true:是;
- false:否。
isClearNoticeBarBool是否可清除通知栏。
- true:是;
- false:否。
isFixDisplayBool是否定时展示。
- true:是;
- false:否。
fixStartDisplayDatedate定时展示开始时间。
fixEndDisplayDatedate定时展示结束时间。
vibrateBool通知方式:是否振动。
- true:是;
- false:否。
lightsBool通知方式:是否闪光。
- true:是;
- false:否。
soundBool通知方式:是否有声音。
- true:是;
- false:否。
notifyKeyString分组合并推送的 key,凡是带有此 key 的通知栏消息只会显示最后到达的一条。
callbackString回调 URL, 长度限制 128 字符。
callbackParamString回调参数,长度限制 64 字符。
callbackTypeStringint(可选字段),回执类型。
- 1:送达回执;
- 2:点击回执;
- (默认)3:送达与点击回执。

华为推送说明

华为自定义铃声样例:

{
    "message":{
        "android":{
            "notification":{
                "title":"wx1994发来新消息3",
                "body":"联系人发来新消息",
                "channelId":"hyphenate_offline_push_notification",
                "defaultSound":false,
                "sound":"/raw/ring",
                "importance":"NORMAL"
            }
        }
    }
}
字段类型描述
validateOnlyBool是否为测试消息,实际不会下发。
- true:是;
- false:否。
messageObject推送消息内容。
reviewObject第三方审核机构审核结果,具体请参考华为官网Reviewopen in new window的定义。

推送消息结构体

字段类型描述
dataObject自定义消息负载。
notificationObject通知栏消息内容
androidObject安卓消息推送控制参数
通知栏消息内容
字段类型描述
titleString通知栏消息的标题。
bodyString通知栏消息的内容。
imageString用户自定义的通知栏消息右侧大图标 URL。
安卓消息推送控制参数
字段类型描述
collapseKeyInt离线消息缓存分组标识。
urgencyString透传消息投递优先级。
categoryString用于重要优先级的透传消息发送场景标识。
ttlString消息缓存时间(单位为秒)。
biTagString批量任务消息标识。
fastAppTargetTypeInt快应用发送透传消息时,指定小程序的模式类型。
- 1:开发态;
- (默认)2:生产态。
dataString自定义消息负载,此处如果设置了 data,则会覆盖 message.data 字段。
notificationObject安卓通知栏消息结构体
receiptIdString输入一个唯一的回执 ID 指定本次下行消息的回执地址及配置,该回执 ID 可以在回执参数配置中查看。
targetUserTypeInt
- 0:普通消息(默认值);
- 1:测试消息。每个应用每日可发送该测试消息 500 条且不受每日单设备推送数量上限要求。
安卓通知栏消息结构体
字段类型描述
titleString安卓通知栏消息标题。
bodyString安卓通知栏消息内容。
iconString自定义通知栏左侧小图标,本地的 /res/raw/,支持的文件格式目前包括 png、jpg。
colorString自定义通知栏按钮颜色。
soundString自定义消息通知铃声,在新创建渠道时有效,此处设置的铃声文件必须存放在应用的/res/raw路径下,例如设置为“/raw/shake”,对应应用本地的/res/raw/shake.xxx文件,支持的文件格式包括mp3、wav、mpeg等,如果不设置使用默认系统铃声。注意:由于铃声是通知渠道的属性,因此铃声仅在渠道创建时有效,渠道创建后,即使设置自定义铃声也不会播放,而使用创建渠道时设置的铃声。
defaultSoundBool默认铃声控制开关。
- true:打开;
- false:关闭。
tagString消息标签,同一应用下使用同一个消息标签的消息会相互覆盖,只展示最新的一条。
clickActionObject消息点击行为
bodyLocKeyString通知显示本地化。
bodyLocArgsList
titleLocKeyString标题本地化 key。
titleLocArgsList
multiLangKeyList消息国际化多语言参数。
channelIdString通道 ID。
notifySummaryString安卓通知栏消息简要描述。
imageString自定义的安卓通知栏消息右侧大图标 URL。
styleInt通知栏样式:
- 0:默认样式;
- 1:大文本样式;
- 3:Inbox样式。
bigTitleString安卓通知栏消息大文本标题。
bigBodyString安卓通知栏消息大文本内容。
autoClearInt消息展示时长,超过后自动清除,单位为毫秒。
notifyIdInt每条消息在通知显示时的唯一标识。实现新的通知栏消息覆盖老的。
groupString消息分组,将同一组的消息只显示 1 条。
badgeObject安卓通知消息角标控制
autoCancelBool安卓通知栏消息保持标识,在点击通知栏消息后,消息是否不显示在通知栏。
- true:是;
- false:否。
whenString消息的排序时间,安卓通知栏消息根据这个值将消息排序,同时这个时间在通知栏上显示。样例:2014-10-02T15:01:23.045123456Z
importanceStringAndroid通知消息分类,决定用户设备消息通知行为,取值如下:
- LOW:资讯营销类消息;
- NORMAL:服务与通讯类消息。
useDefaultVibrateBool是否使用系统默认振动模式控制开关。
- true:是;
- false:否。
useDefaultLightBool是否使用默认呼吸灯模式控制开关。
- true:是;
- false:否。
vibrateConfigString安卓自定义通知消息振动模式,每个数组元素按照 “[0-9]+|[0-9]+[sS]|[0-9]+[.][0-9]{1,9}|[0-9]+[.][0-9]{1,9}[sS]“ 格式,取值样例 [“3.5S”,”2S”,“1S”,“1.5S”],数组元素最多支持 10 个,每个元素数值整数大于 0 小于等于 60。
visibilityString安卓通知栏消息可见性,取值如下:
- VISIBILITY_UNSPECIFIED:未指定 visibility,效果等同于设置了 PRIVATE
- PUBLIC:锁屏时收到通知栏消息,显示消息内容。
- SECRET:锁屏时收到通知栏消息,不提示收到通知消息。
- PRIVATE:设置了锁屏密码,锁屏通知(导航:设置--通知中心)选择隐藏通知内容时收到通知消息,不显示消息内容。
取值说明请参考锁屏不展示通知内容open in new window
lightSettingsObject自定义呼吸灯模式
foregroundShowBool设备应用在前台时通知栏消息是否前台展示开关。
- true:是;
- false:否。
inboxContentList当 style 为 3 时,Inbox 样式的内容(必选),支持最大 5 条内容,每条最大长度 1024 字符。展示效果请参考Inbox 样式open in new window章节。
buttonsList通知栏消息动作按钮,最多设置 3 个。
通知栏消息动作按钮
字段类型描述
nameString按钮名称,必填,最大长度 40 字符。
actionTypeInt按钮动作类型。
- 0:打开应用首页;
- 1:打开应用自定义页面;
- 2:打开指定的网页;
- 3:清除通知; - 4:分享功能。
intentTypeInt打开自定义页面的方式:
- 0:设置通过intent打开应用自定义页面;
- 1:设置通过action 打开应用自定义页面;当 action_type1 时,该字段必填。
intentStringaction_type1,此字段按照 intent_type 字段设置应用页面的 uri 或者 action.
dataString最大长度 1024 字符。
- 当字段 action_type01 时,该字段用于在点击按钮后给应用透传数据,选填,格式必须为 key-value 形式:{“key1”:“value1”,“key2”:“value2”,…}。
- 当 action_type4 时,此字段必选,为分享的内容。
自定义角标
字段类型描述
addNumInt角标累加数字,大于 0 小于 100 的正整数。
badgeClassString应用包名+应用入口 Activity 类名。样例:com.huawei.codelabpush.MainActivity
setNumInt角标设置数字,大于等于 0 小于 100 的整数。
自定义消息点击行为
字段类型描述
typeInt消息点击行为类型。
- 1:用户自定义点击行为;
- 2:点击后打开特定 url;
- 3:点击后打开应用 App。
intentString自定义页面中 intent 的实现,当 type1 时,字段 intentaction 至少二选一。
urlString设置打开特定 URL,URL 使用的协议必须是 HTTPS 协议。
actionString设置通过 action 打开应用自定义页面。
自定义呼吸灯模式
字段类型描述
colorObject呼吸灯颜色
lightOnDurationString呼吸灯点亮时间间隔,格式按照 “|[sS]|.|.[sS]”。
lightOffDurationString呼吸灯熄灭时间间隔,格式按照 “|[sS]|.|.[sS]”。
呼吸灯颜色
字段类型描述
alphaFloatRGB 颜色中的 alpha 设置,默认值为 1,取值范围 [0,1]。
redFloatRGB 颜色中的 red 设置,默认值为 0,取值范围 [0,1]。
greenFloatRGB 颜色中的 green 设置,默认值为 0,取值范围 [0,1]。
blueFloatRGB 颜色中的 blue 设置,默认值为 0,取值范围 [0,1]。

荣耀推送说明

{
    "data":{
        "key1":"value1"
    },
    "androidConfig":{
        "androidNotification":{
            "title":"honor",
            "body":"body",
            "clickAction":{
                "type":2,
                "url":"https://wwww.easemob.com"
            },
            "badgeNotification":{
                "setNum":1,
                "badgeClass":"com.hyphenate.chatdemo.section.login.activity.SplashActivity"
            }
        }
    }
}

推送通知结构体

字段类型描述
dataObject自定义消息负载,为 key-value 格式。
androidConfigObjectAndroid消息推送控制参数

Android消息推送控制参数

字段类型描述
ttlString消息缓存时间,单位为秒。
biTagString批量任务消息标识,消息回执时会返回给应用服务器。
dataString自定义消息负载。若设置了该字段,则会覆盖上层的 data 字段
androidNotificationObjectAndroid 通知栏消息结构体

Android通知栏消息结构体

参数类型描述
titleString安卓通知栏消息标题。
bodyString安卓通知栏消息内容。
clickActionObject消息点击动作
imageString自定义通知栏消息右侧大图标 URL。
styleInt通知栏样式:
- 0:默认样式;
- 1:大文本样式。
bigTitleString大文本标题,当 style1 时必选。
bigBodyString大文本内容,当 style1 时必选。
importanceStringAndroid 通知消息分类,对不同类别消息的默认展示方式、消息样式进行差异化管理:
- LOW:资讯营销类消息,包括内容资讯消息和活动营销消息。
- NORMAL:服务与通讯类消息,包括社交通讯消息和服务提醒消息。
whenString通知栏消息的到达时间,为 UTC 时间戳,,例如 2014-10-02T15:01:23.045123456Z。
buttonsList通知栏消息动作按钮,最多可设置 3 个。例如,“buttons”:[{“name”:“打开应用”,“actionType”:“1”}]。
badgeNotificationObject角标控制
notifyIdInt每条消息在通知显示时的唯一标识。新的消息的标识会覆盖上一条消息的标识。

通知栏消息单击动作

参数是否必选参数类型描述
typeInt消息点击行为类型:
- 1:打开应用自定义页面。
- 2:点击后打开特定 URL。
- (默认)3:点击后打开应用首页。
intentString通过 intent 打开应用自定义页面。若 type1intentaction 参数至少二选一。
urlString设置打开特定 URL,URL 使用的协议必须是 HTTPS 协议。
actionString通过 action 打开应用自定义页面。

通知栏消息行为按钮

参数是否必选参数类型描述
nameString按钮名称,最大长度为 40 个字符。
actionTypeInt按钮动作类型:
- 0:打开应用首页;
- 1:打开应用自定义页面;
- 2:打开指定的页面。
intentTypeInt打开自定义页面的方式:
- 0:设置通过 intent 打开应用自定义页面;
- 1:设置通过 action 打开应用自定义页面。 当 actionType1 时,该字段必填。
intentString
- 若 actionType1,按照 intentType 字段设置应用页面的 URL 或 action。具体设置方式参见打开应用自定义页面。
- 若 actionType2,此字段设置打开指定网页的 URL,URL 使用的协议必须是 HTTPS 协议,例如,https://example.com/image.png。
dataString最大长度为 1024 个字符。 若 actionType01,该参数用于在点击按钮后给应用透传数据,格式必须为 key-value 形式,例如 {“key1”:“value1”,“key2”:“value2”,…}。

角标控制

参数是否必选参数类型描述
addNumInt应用角标累加数字非应用角标实际显示数字,为大于 0 小于 100 的整数。
badgeClassString应用入口 Activity 类全路径。 例如,com.example.test.MainActivity。
setNumInt角标设置数字,大于等于 0 小于 100 的整数。如果 setNumaddNum 同时存在时,以 setNum 为准。

鸿蒙推送说明

多行文本推送示例:

{
    "title": "鸿蒙推送",
    "body": "欢迎测试环信鸿蒙推送",
    "style": 3,
    "inboxContent": [
        "1. 环信通知",
        "2. Hello world"
    ]
}

推送字段说明如下:

字段类型描述
pushTypeInteger推送消息类型:
- (默认)0:Alert 消息(通知消息、授权订阅消息)
- 1:卡片刷新消息
- 2:通知扩展消息
- 6:后台消息
- 7:实况窗更新消息
- 10:VoIP 呼叫消息
isTestMessageBoolean是否是测试消息。
receiptIdString回执 ID。
categoryString消息分类,默认 IM
titleString推送通知标题。
bodyString推送通知内容。
imageString通知右侧大图标 URL,必须是 HTTPS 协议。支持类型 png、jpg、jpeg、heif、gif、bmp。 图片长宽建议小于 128x128 像素,若超过49152 像素,则图片不展示。
styleInteger通知样式:
- (默认)0:普通通知
- 1:大文本样式
- 3:多行文本样式
bigTitleString大文本标题,当 style1 时必选。
bigBodyString大文本内容,当 style1 时必选。
inboxContentList多行文本样式的内容,当 style3 时,本字段必填,最多支持 3 条内容。
样例:"inboxContent": ["1.content1","2.content2","3.content3"]。
notifyIdInteger唯一标识,相同覆盖。
addNumInteger自增。
setNumInteger覆盖,优先级高于 addNum
actionTypeInteger点击行为:
- (默认)0:打开应用首页。
- 1:打开应用自定义页面。
actionString应用内置页面 ability 对应的 action
uriString应用内置页面 ability 对应的 uri
dataObject自定义扩展参数。
payloadObject更多推送类型载体,见请求体结构说明-场景化消息open in new window 注意:推送消息类型非0时使用。